2

如何使用 XPath 只选择“失败”值?

<Properties>
  <Property Descriptor="100">1377349460.298</Property>
  <Property Descriptor="101">1</Property>
  <Property Descriptor="24000">fail</Property>
</Properties>
<Properties>
  <Property Descriptor="100">1377349462.298</Property>
  <Property Descriptor="101">1</Property>
  <Property Descriptor="24000">pass</Property>
</Properties>

我试过Property[@Value="fail"]了,但它不起作用。

4

2 回答 2

3

要选择Property包含字符串的元素,请fail使用:

Property[.='fail']

或者

Property[text()='fail']

正如八佰正确建议的那样。

.表示“当前节点”,text()表示“当前节点中的第一个文本”,因此表达式的意思是“选择一个名为Property包含的元素fail”)

这假设当前节点位于Property元素的正上方,如果您想Property在当前节点下方的任何级别中查找,请使用:

//Property[.='fail']

在 XPath 中,在测试中使用时会考虑非空节点集true- 所以上面的 XPath(在某种意义上)已经是一个测试,如果任何地方有任何Property节点包含fail.

如果要计算Property任何级别的节点包含多少个节点,请fail使用:

count(//属性[.='fail'])

于 2013-09-06T14:50:41.290 回答
2

您也可以按以下方式执行此操作:-

//Property[text()='fail']
于 2013-09-06T14:59:57.857 回答