当前位置:  开发笔记 > 编程语言 > 正文

使用XPath查询XML时始终为null

如何解决《使用XPath查询XML时始终为null》经验,为你挑选了1个好方法。

我使用以下代码来查询我从流中获取的XPath的一些XML.

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
inputStream.close();

XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("//FOO_ELEMENT");

Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
    System.out.println(nodes.item(i).getNodeValue());

我已经通过将内容转换为字符串检查了内容流 - 而且它就在那里 - 所以它不像流中没有数据.

这只是让我烦恼 - 因为我已经尝试了各种不同的代码,我仍然在"System.out.println"行打印'null' - 我在这里缺少什么?

注意:我想在元素中看到文本.



1> Eddie..:

除了Brabster建议的内容之外,您可能还想尝试一下

System.out.println(nodes.item(i).getTextContent());

要么

System.out.println(nodes.item(i).getNodeName());

取决于您打算显示的内容.

见http://java.sun.com/javase/6/docs/api/org/w3c/dom/Node.html

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有