27

我正在处理一个 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() 时也会返回一个空值。这里有一个字符串,我可以在控制台输出中看到它。但是我不确定我在这里缺少什么技巧,输出转义是否以任何特定方式弄乱了它?

谢谢, 帕里加特

4

2 回答 2

59

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

于 2012-09-13T20:31:07.000 回答
1

代替

rows[i].getNodeValue()

采用

rows[i].getNodeValue().getChildNodes().item(0).getNodeValue()
于 2017-05-03T10:07:33.780 回答