package com.study; 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.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.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 XMLParse extends DefaultHandler { /** * @param args */ Stack<String> tags = new Stack<String>(); public XMLParse() { super(); } public static void main(String[] args) throws Exception { // Todo Auto-generated method stub XMLParse myXML = new XMLParse(); //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("D://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("data"); for (int i = 0; i < nl.getLength(); i++) { System.out.println("Name|" + doc.getElementsByTagName("name").item(i) .getFirstChild().getNodeValue()); System.out.println("Mail|" + doc.getElementsByTagName("mail").item(i) .getFirstChild().getNodeValue()); } } 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(); XMLParse reader = new XMLParse(); sp.parse(f,reader); } catch (Exception e) { e.printstacktrace(); } System.out.println("sax runtime" + (System.currentTimeMillis() - start) + " MS"); } public void startElement(String uri,String localName,String qName,Attributes attrs) { tags.push(qName); } public void characters(char ch[],int start,int length) throws SAXException { String tag = (String) tags.peek(); if (tag.equals("name")) { System.out.println("Name|" + new String(ch,start,length)); } else if (tag.equals("mail")) { System.out.println("Space|" + new String(ch,length)); } }*/ public void JDOM() { long start = System.currentTimeMillis(); try { SAXBuilder builder = new SAXBuilder(); org.jdom2.Document doc = builder.build(f); Element foo = doc.getRootElement(); List<?> allChildren = foo.getChildren("datas"); //Element ele=foo.getChild("datas"); //获取datas元素,如果有多个获取List个数循环查询 for (int i = 0; i < allChildren.size(); i++) { Element ele = (Element) allChildren.get(i); List<?> elechilds = ele.getChildren("data"); for (int j = 0; j < elechilds.size(); j++) { System.out.println("Name | "+((Element) elechilds.get(j)).getChildText("name")); System.out.println("Mail | "+((Element) elechilds.get(j)).getChildText("mail")); System.out.println("QQ | "+((Element) elechilds.get(j)).getChildText("qq")); System.out.println("-----------------"); } } } catch (JDOMException 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("jdom runtime" + (end - start) + "MS"); } public void DOM4J() { long start = System.currentTimeMillis(); try { SAXReader reader = new SAXReader(); org.dom4j.Document doc = reader.read(f); org.dom4j.Element root = doc.getRootElement(); for (@SuppressWarnings("rawtypes") java.util.Iterator i = root.elementIterator("datas"); i.hasNext();) { org.dom4j.Element foo = (org.dom4j.Element) i.next(); for (@SuppressWarnings("rawtypes") java.util.Iterator j = foo.elementIterator("data"); j.hasNext();) { org.dom4j.Element ele = (org.dom4j.Element) j.next(); System.out.println("Name|" + ((org.dom4j.Element) ele).elementText("name")); } System.out.println("------------------"); } } catch (DocumentException e) { // Todo Auto-generated catch block e.printstacktrace(); } long end = System.currentTimeMillis(); System.out.println("dom4j runtime" + (end - start) + "MS"); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。