import java.io.*; import java.net.*; import org.w3c.dom.*; import org.w3c.dom.Node.*; import oracle.xml.parser.v2.*; public class XMLParsingUsingDOM { static public void main(String[] argv) { try { if (argv.length != 1) { // must pass in the name of the XML file System.err.println("Usage: java DOMExample filename"); System.exit(1); } // Get an instance of the parser DOMParser parser = new DOMParser(); // Generate a URL from the filename URL url = createURL(argv[0]); // Set various parser options; validation on, // warnings shown, error stream set to stderr. parser.setErrorStream(System.err); parser.setValidationMode(true); parser.showWarnings(true); // parse the do*****ent parser.parse(url); // Obtain the do*****ent Document doc = parser.getDocument(); // print do*****ent elements System.out.print("The elements are: "); printElements(doc); // print do*****ent elements attributes System.out.println("The attributes of each element are: "); printElementAttributes(doc); } catch (Exception e) { System.out.println(e.toString()); } } static void printElements(Document doc) { NodeList nodelist = doc.getElementsByTagName("*"); Node node; for (int i=0; i<nodelist.getLength(); i++) { node = nodelist.item(i); System.out.print(node.getNodeName() + " "); } System.out.println(); } static void printElementAttributes(Document doc) { NodeList nodelist = doc.getElementsByTagName("*"); Node node; Element element; NamedNodeMap nnm = null; String attrname; String attrval; int i, len; len = nodelist.getLength(); for (int j=0; j < len; j++) { element = (Element)nodelist.item(j); System.out.println(element.getTagName() + ":"); nnm = element.getAttributes(); } if (nnm != null) { for (i=0; i<nnm.getLength(); i++) { node = nnm.item(i); attrname = node.getNodeName(); attrval = node.getNodeValue(); System.out.println(" " + attrname + " = " + attrval); } } System.out.println(); } static URL createURL(String filename) { URL url = null; try { url = new URL(filename); } catch (MalformedURLException ex) { try { File f = new File(filename); url = f.toURL(); } catch (MalformedURLException e) { System.out.println("Cannot create URL for: " + filename); System.exit(0); } } return url; } }
XML Document
John B 12 Mary A 11 Simon A 18