I am processing a DomDocument which is basically the XML result of a SOAP web service. To give you an idea, this is what it looks like
...<ParentNode><ChildNode><output><escaped<string</ChildNode></ParentNode>...
Yes, the value of ChildNode is a string that has been output escaped and is XML that is packed within this XML. I do the usual run of DomDocument processing such as
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
}
After you inspect the above code, you realize that even though the node returns correct values for ParentNode and the NodeName node, it returns a null value upon accessing getNodeValue(). There is a string here, and I can see it in my console output. But I am not sure what trick I am missing here, does the output escaping mess it up in any particular way?
Thanks, Parijat
You want getTextContent()
rather than getNodeValue()
- the latter always returns null for element nodes.
Instead of
rows[i].getNodeValue()
use
rows[i].getNodeValue().getChildNodes().item(0).getNodeValue()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With