XSLT 1.0中,字符串长度功能

问题描述:

我看到这个网站 http://www.xsltfunctions.com/xsl/fn_string-length.html 的字符串长度我认为这是XSLT 2.0语法。XSLT 1.0中,字符串长度功能

尽管在XSLT 1.0,我想这:

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

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

+0

您为什么需要这样做? – 2009-09-29 17:59:36

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

如果你想在'string-length()'中得到节点的内容而不是节点本身,xpath可以包含'text()'函数。 – 2016-07-25 20:33:36

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

请注意,作为参数传递的xpath相对于xpath表达式中的当前上下文