Xml 计算XSLT 2.0中变量中的字符数

Xml 计算XSLT 2.0中变量中的字符数,xml,xslt,Xml,Xslt,我有一个XML,如下所述。此xml包含例如地址节点(address1)。我只想计算地址文本中字符(,)的出现次数。我使用的是模板,所以我需要将地址文本存储到xslt变量中 示例XML: <xml> <address1>123 Fake Street, Alberta, Alberta, 234567</address1> <address1>123 Fake Street, Alberta, Alberta</address

我有一个XML,如下所述。此xml包含例如地址节点(address1)。我只想计算地址文本中字符()的出现次数。我使用的是模板,所以我需要将地址文本存储到xslt变量中

示例XML:

<xml>
    <address1>123 Fake Street, Alberta, Alberta, 234567</address1> 
    <address1>123 Fake Street, Alberta, Alberta</address1>
</xml> 

艾伯塔省假街123号,艾伯塔省,234567
艾伯塔省假街123号,艾伯塔省
我的XSLT:

<xsl:variable name="address" select="//*[local-name()='address1')]"/>
<xsl:variable name="totalComma" select="count(contains($address, ','))"/>
<xsl:choose>
<xsl:when test="$totalComma = 3">
    <!--Do something-->
</xsl:when>
<xsl:when test="$totalComma = 2">
    <!--Do something-->
</xsl:when>
</xsl:choose>


我不知道这是否是正确的解决方案,但没有得到预期的结果。一点帮助是非常值得的

使用
stringlength(foo)-字符串长度(translate(foo),,,”)

XSLT1,0或2.0?在XSLT1.0中,您可以使用递归模板(如果可能的字符不为“,”已知(我希望为“否”),也可以在1中使用。0@Martin非常感谢你。按预期工作。