xslt 1.0,字符串长度函数

时间:2009-09-29 17:49:20

标签: xslt xpath

我在这个网站上看到了字符串长度 的 http://www.xsltfunctions.com/xsl/fn_string-length.html 我认为这是xslt 2.0语法。

但是,在xslt 1.0中,我尝试了这个:

<xsl:template match="/">
    <xsl:value-of select="string-length(())" /> 
</xsl:template>

我收到了一个错误。是否有任何函数可以用来转换()并将其传递给字符串长度,以便我可以得到0?

2 个答案:

答案 0 :(得分:10)

XPath 1.0 string-length()采用单个字符串参数。任何不是字符串的东西都会被转换为字符串。无法转换一组空括号,并且1.0中没有序列。要获得0,您可以提供空字符串:

<xsl:template match="/">
  <xsl:value-of select="string-length('')" /> 
</xsl:template>

为了获得有意义的东西,您可以提供节点集,例如:

<xsl:template match="/">
  <xsl:value-of select="string-length(some/xpath)" /> 
</xsl:template>

节点集中的第一个节点将转换为字符串并传递给函数。

答案 1 :(得分:2)

更多信息:如果你没有将任何参数传递给string-length(),它将评估当前的上下文节点。

请注意,作为参数传递的xpath是相对于xpath表达式

中的当前上下文