【问题标题】:xpath is giving a node with null valuexpath 给出了一个空值的节点
【发布时间】:2013-10-22 22:54:13
【问题描述】:

我是第一次使用 XPath。当我试图从 xml 中获取一个节点时,我得到一个具有空值的节点。

这是xml文件的样子..

<?xml version="1.0" encoding="UTF-8"?>
<Message>
<Header>
<FromCompany>Content</FromCompany>
<From>Source</From>
<FromEmail>eg@eg.com</FromEmail>
<Toy>Pocket</Toy>
<SentDate>20300709</SentDate>
</Header>

...

我已经写了如下的xpath expr ...

public XPath xPath =  XPathFactory.newInstance().newXPath();
Node message = (Node) xPath.evaluate("/Message", pxml, XPathConstants.NODE);
System.out.println("message::" + message);

当我执行消息时,节点不是空的,而是将数据打印为 消息::[消息:空]

我无法获取节点的内容。有人可以帮我找出我做错了什么吗?

【问题讨论】:

  • _message 定义在哪里?
  • "_" 是编辑错误。它只是消息。

标签: java xml xpath


【解决方案1】:

在这种情况下,xPath 将返回一个org.w3c.dom.Node,这是预期的(我希望)。

要获取节点的内容,您需要使用Node#getTextContent,使用您的示例输出...

Content
Source
eg@eg.com
Pocket
20300709

【讨论】:

  • 感谢它通过使用 getTextContent 而不是 getNodeValue 解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
相关资源
最近更新 更多