xslt 1.0,字符串长度函数

gre*_*009 5 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>
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*lak 11

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

<xsl:template match="/">
  <xsl:value-of select="string-length('')" /> 
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

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

<xsl:template match="/">
  <xsl:value-of select="string-length(some/xpath)" /> 
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你想要节点的内容而不是节点本身,那么 xpath 可以包含 `text()` 函数。 (2认同)