选择特定值XPath

时间:2013-09-06 14:47:30

标签: xml xpath

如何使用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"],但它不起作用。

2 个答案:

答案 0 :(得分:3)

要选择包含字符串Property的{​​{1}}元素,请使用:

fail

Property[.='fail']
正如巴拜正确建议的那样。

Property[text()='fail'] 表示“当前节点”,.表示“当前节点中的第一个文本”,因此表达式意味着“选择一个名为text()的元素,其中包含Property }')

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

Property

在XPath中,当在测试中使用时,非空节点集被视为//Property[.='fail'] - 因此,如果在任何地方有任何true节点,则上述XPath(在某种意义上)已经是测试Property

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

计数(//属性[。= '失败'])

答案 1 :(得分:2)

你也可以这样做: -

//Property[text()='fail']