List an XML document with DOM parser
import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.DocumentType; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class MainClass implements ErrorHandler { public static void main(String args[]) throws Exception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory .newInstance(); builderFactory.setNamespaceAware(true); builderFactory.setValidating(true); DocumentBuilder builder = null; builder = builderFactory.newDocumentBuilder(); builder.setErrorHandler(new MainClass()); Document xmlDoc = null; xmlDoc = builder.parse(new File("y.xml")); DocumentType doctype = xmlDoc.getDoctype(); System.out.println("DOCTYPE node:\n" + doctype); listNodes(xmlDoc.getDocumentElement(), ""); } static void listNodes(Node node, String indent) { String nodeName = node.getNodeName(); System.out.println(indent + nodeName + " Node, type is " + node.getClass().getName() + ":"); System.out.println(indent + " " + node); NodeList list = node.getChildNodes(); if (list.getLength() > 0) { System.out.println(indent + "Child Nodes of " + nodeName + " are:"); for (int i = 0; i < list.getLength(); i++) listNodes(list.item(i), indent + " "); } } public void fatalError(SAXParseException spe) throws SAXException { System.out.println("Fatal error at line " + spe.getLineNumber()); System.out.println(spe.getMessage()); throw spe; } public void warning(SAXParseException spe) { System.out.println("Warning at line " + spe.getLineNumber()); System.out.println(spe.getMessage()); } public void error(SAXParseException spe) { System.out.println("Error at line " + spe.getLineNumber()); System.out.println(spe.getMessage()); } } <?xml version="1.0"?> <!DOCTYPE address SYSTEM "AddressDoc.dtd"> <address> <buildingnumber> 29 </buildingnumber> <street> South Lasalle Street</street> <city>Chicago</city> <state>Illinois</state> <zip>60603</zip> </address> <!ELEMENT address (buildingnumber, street, city, state, zip)> <!ELEMENT buildingnumber (#PCDATA)> <!ELEMENT street (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT zip (#PCDATA)>