So I have the following code which I pretty much copied from here. But the problem is my text nodes do not contain any text they just have attributes. So I have like
<Random name="Katie" num="5"></Random>
and I'm using this code to parse it:
private void listNodes(Node node, String indent)
{
String nodeName = node.getNodeName();
System.out.println(indent + " Node is: " + nodeName);
if(node instanceof Element && node.hasAttributes())
{
System.out.println(indent + "Attributes are: ");
NamedNodeMap attrs = node.getAttributes();
for (int i = 0; i < attrs.getLength(); i++)
{
Attr attribute = (Attr) attrs.item(i);
System.out.println(indent + attribute.getName() + "=" + attribute.getValue());
}
}
NodeList list = node.getChildNodes();
if (list.getLength() > 0)
{
for (int i = 0; i < list.getLength(); i++)
{
listNodes(list.item(i), indent + " ");
}
}
}
For some reason my empty text nodes all say
Node is: #text
Does anyone know how to skip empty node text when parsing the xml file?
Thanks,
Josh
With DTD validation you can have the parser automatically suppress the whitespace between elements. However to modify your specific implementation, you can test for Text nodes, and ignore them if they are empty.
private void listNodes(Node node, String indent)
{
if (node instanceof Text) {
String value = node.getNodeValue().trim();
if (value.equals("") ) {
return;
}
}
String nodeName = node.getNodeName();
System.out.println(indent + " Node is: " + nodeName);
...
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