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

2022-09-01 15:15:37

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

谢谢 帕里贾特


答案 1

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


答案 2

而不是

rows[i].getNodeValue()

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