-3

我有一个用于转换的 XSLT 样式表。在此我必须使用<xsl:function>. 当我即将在此范围内执行此操作时,<xsl:stylesheet></xsl:stylesheet>它会引发错误。

这是功能:

<xsl:function name="functx:pad-string-to-length" as="xs:string" 
              xmlns:functx="http://www.functx.com" >
  <xsl:param name="stringToPad" as="xs:string?"/> 
  <xsl:param name="padChar" as="xs:string"/> 
  <xsl:param name="length" as="xs:integer"/> 

  <xsl:sequence select=" 
   substring(
     string-join (
       ($stringToPad, for $i in (1 to $length) return $padChar)
       ,'')
    ,1,$length)
 "/>

</xsl:function>
4

2 回答 2

1

问题中定义的函数在语法上是正确的,并且看起来很有意义。

因此,错误出现在您忘记向我们展示的代码中——更具体地说,该函数是如何与哪些参数一起使用的。

除此之外,还有明显的重构可能性——比如string-join()concat().

于 2011-12-08T13:51:53.223 回答
0

正如@John Mitchell 所说,告诉我们错误是什么可能会有所帮助。但是,我看到您在函数上声明了命名空间 - 确保xmlns:functx="http://www.functx.com"也在<xsl:stylesheet>样式表顶部的元素中声明。

显然,要检查的另一件事是您在函数调用中正确输入了参数:您的前两个参数需要引号,但第三个不需要引号(例如<xsl:value-of select="functx:pad-string-to-length('boo', '-', 12)"/>)。

于 2011-12-08T09:04:44.493 回答