使用DOMParser 解析xml的Java代碼

by57 9年前發布 | 2K 次閱讀 Java

import java.io.;
import java.net.;
import org.w3c.dom.;
import org.w3c.dom.Node.;

import oracle.xml.parser.v2.*;

/**



*/

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;

}

}</pre>

 本文由用戶 by57 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!