我正在寻找一个 GPath 表达式来查找具有特定子节点的节点。
<table>
<tr>
<td name="line">1</td>
<td name="price">10</td>
</tr>
<tr>
<td name="line">2</td>
<td name="price">95</td>
</tr>
<tr>
<td name="line">3</td>
<td name="price">43</td>
</tr>
</table>
在上面的示例 XML 中,我想检索tr
包含td
具有属性price
和 text的元素的整个元素95
。
在 XPath 中,我会这样写:
//tr[td[@name='price' and text()='95']]
我尝试过的代码看起来像这样......
xmlDoc.tr.td.find { node -> node.text() == '1' }.parent()
...但这更像是一个 XPath 等价物,如他的:
//tr/td[@name='price' and .='95']/parent::*
在这种确切的情况下,它会做,但我不是父斧的忠实粉丝。假设会有更多的子节点级别,我将如何处理“嵌套”谓词?返回一个具有子节点的节点...?
非常感谢!