- import java.io.*;
- import java.net.*;
- import org.w3c.dom.*;
- import org.w3c.dom.Node.*;
- import oracle.xml.parser.v2.*;
- /**
- * -----------------------------------------------------------------------------
- * Demonstrate how to use DOM.
- *
- * @version 1.0
- * @author Jeffrey M. Hunter (jhunter@idevelopment.info)
- * @author http://www.idevelopment.info
- * -----------------------------------------------------------------------------
- */
- public class DOMExample {
- /*
- * +---------------------------------------------+
- * | METHOD: main |
- * +---------------------------------------------+
- */
- 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 document
- parser.parse(url);
- // Obtain the document
- XMLDocument doc = parser.getDocument();
- // print document elements
- System.out.print("The elements are: ");
- printElements(doc);
- // print document elements attributes
- System.out.println("The attributes of each element are: ");
- printElementAttributes(doc);
- } catch (Exception e) {
- System.out.println(e.toString());
- }
- }
- /*
- * +---------------------------------------------+
- * | METHOD: printElements |
- * +---------------------------------------------+
- */
- 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();
- }
- /*
- * +---------------------------------------------+
- * | METHOD: printElementAttributes |
- * +---------------------------------------------+
- */
- 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();
- }
- /*
- * +---------------------------------------------+
- * | METHOD: createURL |
- * +---------------------------------------------+
- */
- 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;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/090920135747.html
来源: http://www.codesnippet.cn/detail/090920135747.html