1

我试图在几个不同的上下文中运行相同的查询,但我总是得到相同的结果。这是一个示例 xml:

<root>
<p>
  <r>
    <t>text</t>
  </r>
</p>
<t>text2</t>
</root>

所以这就是我正在做的事情:

final XPath xpath = XPath.newInstance("//t");

List<Element> result = xpath.selectNodes(thisIsThePelement); 
// and I've debuged it, it really is the <p> element

而且我总是<t>在结果列表中获得这两个元素。我只需要传递给对象的<t>内部。<p>XPath

任何想法都会有很大帮助,谢谢。

4

1 回答 1

9

您正在使用"//t"XPath 表达式,这意味着精确地“查找t文档中的所有元素”。

要仅从上下文节点中查找后代 元素,请使用.t".//t"

有关详细信息,请参阅 XPath 规范的“缩写语法”部分。

于 2011-02-04T09:06:21.370 回答