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