Xml 带条件的xpath计数
我需要根据条件找到标签的数量Xml 带条件的xpath计数,xml,xpath,count,conditional-statements,Xml,Xpath,Count,Conditional Statements,我需要根据条件找到标签的数量 <A> <B><C>99</C></B> <B><C>96</C></B> <B><C>98</C></B> <B><C>95</C></B> <B><C>99</C></B> </A>
<A>
<B><C>99</C></B>
<B><C>96</C></B>
<B><C>98</C></B>
<B><C>95</C></B>
<B><C>99</C></B>
</A>
预期产出为3
我不是xpath方面的专家,任何帮助都将不胜感激。请像这样尝试:
count(/A/B/C[text() = '99' or text() = '98'])
*
表示任何元素。它将与/*/B
一起工作,因为A
是一个元素<代码>[]表示限制其应用到的节点的谓词。因为它适用于C
,所以在C
和谓词之间不使用任何路径分隔符<代码>/表示后代或自身。因为您的根是A
,所以使用/
或/
没有区别。如果您不关心上下文,只想计算文档中的所有C
s,那么您也可以使用:
count(//C[text() = '99' or text() = '98'])
如果文件的其他部分中有任何
C
s,也将对其进行计数。当它没有什么区别时,就像在您的例子中一样,编写完整路径更有效 您可以将其进一步简化为count(//C[text()=('99','98'))
count(//C[text() = '99' or text() = '98'])