DOMDocument getNodeValue()返回null(包含输出转义字符串)

时间:2012-09-13 19:29:09

标签: java xml dom escaping

我正在处理一个DomDocument,它基本上是SOAP Web服务的XML结果。 为了给你一个想法,这就是它的样子

...<ParentNode><ChildNode>&lt;output&gt;&lt;escaped&lt;string</ChildNode></ParentNode>...

是的,ChildNode的值是一个已输出转义的字符串,是在此XML中打包的XML。我通常运行DomDocument处理,例如

NodeList rows = dom.getElementsByTagName(ChildNode);
for(int i=0;i<rows.length;i++)
{
  System.out.println(rows[i].getParentNode()); // returns ParentNode
  System.out.println(rows[i].getNodeName()); // returns ChildNode
  System.out.println(rows[i].getNodeValue()); // returns null
}

在检查上面的代码之后,您意识到即使节点为ParentNode和NodeName节点返回正确的值,它也会在访问getNodeValue()时返回null值。这里有一个字符串,我可以在我的控制台输出中看到它。但是我不确定我在这里缺少什么技巧,输出是否会以任何特定的方式混乱?

谢谢, 帕里贾特

2 个答案:

答案 0 :(得分:48)

你想要getTextContent()而不是getNodeValue() - 后者总是为元素节点返回null。

答案 1 :(得分:0)

而不是

rows[i].getNodeValue()

使用

rows[i].getNodeValue().getChildNodes().item(0).getNodeValue()