是否可以使用XPath根据结构中较深的节点中的条件检索节点的值?

时间:2012-06-08 18:46:47

标签: xml xpath

这是我的意思的一个例子:

<Data>
  <ID>ID 1</ID>
  <Type>
    <Text>Type 1</Text>
  </Type>
  <Value>Value 1</Value>
</Data>
<Data>
  <ID>ID 2</ID>
  <Type>
    <Text>Type 2</Text>
  </Type>
  <Value>Value 2</Value>
</Data>

如果Text ='Type 1',那么我想返回该元素中的值(在这种情况下,我将返回“Value 1”)。

我能够使用谓词来检索整个元素,但我想找到一种方法,只是为了避免在XPath评估后实现更多逻辑。

任何建议或意见将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:2)

这样的东西
//Data/Value/text()[../../Type/Text/text()='Type 2']

或者

//Data[Type/Text/text()='Type 2']/Value/text()