我正在尝试在几个不同的上下文中运行相同的查询,但我总是得到相同的结果。 这是一个例子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
对象。
任何想法都会有很大的帮助,谢谢。
答案 0 :(得分:9)
您使用"//t"
作为XPath表达式,这意味着准确地“查找文档中的所有t
元素”。
要仅从上下文节点中找到后代 t
元素,请使用".//t"
。
有关详细信息,请参阅XPath规范的"abbreviated syntax"部分。