使用DOMParser 解析xml的Java代码详解编程语言

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  ([email protected]) 
 * @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; 
 
    } 
 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/11050.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论