Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 带条件的xpath计数_Xml_Xpath_Count_Conditional Statements - Fatal编程技术网

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'])