XML:
<nativeInformation>
<detail id="natural:fieldFormat">A</detail>
</nativeInformation>
I am trying to get the "id" value. but keep getting this error: org.apache.xerces.dom.DeferredTextImpl cannot be cast to org.w3c.dom.Element
My code:
for (int i = 0; i < nodeList.getLength(); i++) {
String s;
Node n = nodeList.item(i);
Attr attrName = ((Element) n).getAttributeNode("id");
if (attrName.getValue()!=null) {
s = attrName.getValue();
System.out.println(s);
}
}
If I write : System.out.println("parent node is "+n.getParentNode()); inside the for loop that will give me, [detail: null]
Any help will be really appreciated.
Before casting Node to Element you need to check that the Node is an Element. This is the way to convert Node into Element:
NodeList nodes = root.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
if (nodes.item(i).getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) nodes.item(i);
}
}
see this code:
Node n = nodeList.item(i);
final NamedNodeMap attrs = n.getAttributes();
if(attrs !=null){
Node id = attrs.getNamedItem("id");
if(id !=null){
System.out.println("id: "+id.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