为什么XPath.selectNodes(context)总是在JDOM中使用整个文档

时间:2011-02-04 09:01:06

标签: java xml xpath jdom

我正在尝试在几个不同的上下文中运行相同的查询,但我总是得到相同的结果。 这是一个例子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对象。

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

1 个答案:

答案 0 :(得分:9)

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

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

有关详细信息,请参阅XPath规范的"abbreviated syntax"部分。