首页 > 解决方案 > XPATH 1.0 - 计算节点在 XML 文档中出现相同值的次数

问题描述

我有一个看起来像这样的文件:

<Subdocument Label="Subdocument">
 <Lines Label="Lines">
   <Line>
    <ITEM>AAA</ITEM>
   </Line>
 </Lines>
</Subdocument>

<Subdocument Label="Subdocument">
 <Lines Label="Lines">
   <Line>
    <ITEM>AAA</ITEM>
   </Line>
 </Lines>
</Subdocument>

<Subdocument Label="Subdocument">
 <Lines Label="Lines">
   <Line>
    <ITEM>BBB</ITEM>
   </Line>
 </Lines>
</Subdocument>

<Subdocument Label="Subdocument">
 <Lines Label="Lines">
   <Line>
    <ITEM>BBB</ITEM>
   </Line>
 </Lines>
</Subdocument>

有没有办法使用重复值在文档中出现多少次的计数语法来编写 XPath 1.0?预期的结果是 AAA 出现了 2 次。

标签: xmlxpath

解决方案


下面的 XPath 表达式可以完成这项工作:

count(.//*[text()='AAA'])

但请注意,您示例中的 XML 在语法上不正确(“子文档”元素应包含在某个根元素中)。


推荐阅读