0

我的 xml 看起来像

<details>
  <addr>
      <streetAddressLine>90822 abc lane</streetAddressLine>
      <streetAddressLine>apt b</streetAddressLine>
      <!-- streetAddressLine element is repeatable -->
      <state>xyz</state>
  </addr>
</details>

我正在寻找 xpath 表达式,它可以给我 string-length(streetAddressLine[0]) + string-length (streetAddressLine[1]) + ..... + string-length(streetAddressLine[n]) 的长度

4

2 回答 2

1
string-length(string-join(/details/addr/streetAddressLine/text(),""))
于 2010-10-22T15:21:35.473 回答
1

现在我们知道您想要一个 XPath 2.0 解决方案,这个表达式:

sum(/details/addr/streetAddressLine/string-length())

结果:

19

对于 XSLT 1.0 解决方案,此样式表:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/">
  <xsl:variable name="vStreetAddressLines">
   <xsl:copy-of select="/details/addr/streetAddressLine"/>
  </xsl:variable>
  <xsl:value-of select="string-length($vStreetAddressLines)"/>
 </xsl:template>
</xsl:stylesheet>

输出:

19
于 2010-10-22T15:28:52.040 回答