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

Jyo*_*ngh 4 xml xslt

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

示例 XML:

<xml>
    <address1>123 Fake Street, Alberta, Alberta, 234567</address1> 
    <address1>123 Fake Street, Alberta, Alberta</address1>
</xml> 
Run Code Online (Sandbox Code Playgroud)

我的 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>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*nen 7

使用string-length(foo) - string-length(translate(foo, ',', '')).

  • 很酷,这也将在 1.0 中实现 (2认同)
  • @马丁非常感谢你。按预期工作。 (2认同)