9.3 The Tree Structure View

<..DOM tree traverser..>
 Document doc = builder.parse (new File(args[0]).toURL().toString());
 new TreeTraverser (doc);
-_-_-

<..class TreeTraverser..>
 class TreeTraverser{
     static String indent="";
   TreeTraverser (Node node){
        Node nextNode;
     System.out.println( indent + node.getNodeName());
     nextNode = node.getFirstChild();
     indent += "  ";
     if( nextNode != null ){ new TreeTraverser (nextNode); }
     indent = indent.substring(2);
     nextNode = node.getNextSibling();
     if( nextNode != null ){ new TreeTraverser (nextNode); }
 } }
-_-_-
<?xml version="1.0" encoding="UTF-8"?>  
<!--a comment-->  
<?pi a processing instruction?>  
<root xmlns="x:y" attr="ignored">  
  <section>  
    A &amp; B  
  </section>  
  <![CDATA[ < & > ]]>  
</root>  
#document  
  #comment  
  pi  
  root  
    #text  
    section  
      #text  
    #text  
    #cdata-section  
    #text

Note. The attributes are not listed!