root元素中的属性会导致Java中的XPath Evaluation中出现问题

时间:2012-10-30 08:53:12

标签: java xml xpath

我正在尝试评估XPath Expression" / feed / entry / title"使用:

NodeList nodeList = (NodeList) inputXMLxpath.evaluate("/feed/entry/title", xmlDoc,
                XPathConstants.NODESET);

如果xmlDoc是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<feed>
  <entry>...
<feed>

我得到了正确的结果,但是当xmlDoc是这样的时候:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <entry>...
</feed>

XPath评估的结果始终是一个空列表。

任何人都可以说出原因并建议一个解决方案,以便我在第二种情况下得到正确的结果吗?

1 个答案:

答案 0 :(得分:1)

xmlns - “....”是一个名称空间声明,它具有更改文档中元素名称的效果,因此它们不再被称为“feed”和“entry”,而是更多复杂。 Google用于“XPath默认名称空间声明”。