我在这个网站上看到了字符串长度 的 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?
答案 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表达式
中的当前上下文