XSLT如何获取多个父元素的总出现次数

san*_*nda 2 xslt count xslt-2.0

我有一个XML需要获取元素出现的次数

<lines>
<line>
 <accountings>
  <accounting>
    <account>
      <seg1>value1</seg2>
    </account>
  </accounting>
  <accounting>
    <account>
      <seg1>value2</seg2>
    </account>
  </accounting>
 </accountings>
 </line>
 <line>
<accountings>
 <accounting>
    <account>
      <seg1>value3</seg2>
    </account>
  </accounting>
  </accountings>
 </line>
 <line>
 <account>
    <seg1>value4</seg1>
 </account>
 </line>
</lines>
Run Code Online (Sandbox Code Playgroud)

在上述xml中,共有4个<account>元素

我需要将输出设为4,但是每当我尝试for-each或for-each-group并依靠每个迭代进行计数时,我得到的值为1111,至少需要一种方法来添加所有计数。

Jim*_*son 5

无需循环或分组,只需使用

count(//account)
Run Code Online (Sandbox Code Playgroud)

  • XSLT是声明性的和功能性的(没有可变的“变量”)。输入XML驱动过程,而不是样式表。我发现对学习这一点有用的是Evan Lenz的[XSLT 1.0 Pocket Reference](http://shop.oreilly.com/product/9780596100087.do)。它包含有关XSLT工作原理的简洁明了的描述。现在有点过时了,但是值得的是,它可以设置您的思维模式,就像很多(12)年前为我所做的那样。 (2认同)