java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较 (二)

2014-11-24 11:17:38 · 作者: · 浏览: 14

[java]
package senior;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Stack;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class XMLTest extends DefaultHandler {

/**
* @param args
*/
Stack tags = new Stack();

public XMLTest() {
super();
}

public static void main(String[] args) {
// TODO Auto-generated method stub
XMLTest myXML = new XMLTest();
System.out.println("=====================DOM=========================");
myXML.DOM();
System.out.println("=====================SAX=========================");
myXML.SAX();
System.out.println("=====================JDOM========================");
myXML.JDOM();
System.out.println("=====================DOM4J=======================");
myXML.DOM4J();

System.out.println("=================================================");
}

File f = new File("test.xml");

public void DOM() {

long start = System.currentTimeMillis();
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("node");
for (int i = 0; i < nl.getLength(); i++) {
System.out.println("Name|"
+ doc.getElementsByTagName("name").item(i)
.getFirstChild().getNodeva lue());
System.out.println("Space|"
+ doc.getElementsByTagName("space").item(i)
.getFirstChild().getNodeva lue());
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long end = System.currentTimeMillis();
System.out.println("dom runtime" + (end - start) + "MS");
}

public void SAX() {

long start = System.currentTimeMillis();
try {
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
XMLTest reader = new XMLTest();
sp.parse(f, reader);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("sax runtime"
+ (Sys