zoukankan      html  css  js  c++  java
  • java读取xml文件的四种方法

    <?xml version="1.0" encoding="GB2312"?>  
    <RESULT>  
    <VALUE>     
      <NO>A1234</NO>     
      <ADDR>河南省郑州市</ADDR>  
    </VALUE>  
    <VALUE>     
      <NO>B1234</NO>     
      <ADDR>河南省郑州市二七区</ADDR>  
    </VALUE>  
    </RESULT>



    第一种 DOM 实现方法:
    import java.io.File;   
     
    import javax.xml.parsers.DocumentBuilder;   
    import javax.xml.parsers.DocumentBuilderFactory;   
     
    import org.w3c.dom.Document;   
    import org.w3c.dom.NodeList;   
     
    public class MyXMLReader2DOM {   
    public static void main(String arge[]) {   
     
      long lasting = System.currentTimeMillis();   
     
      try {   
        File f = new File("data_10k.xml");   
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   
        DocumentBuilder builder = factory.newDocumentBuilder();   
        Document doc = builder.parse(f);   
        NodeList nl = doc.getElementsByTagName_r("VALUE");   
       for (int i = 0; i < nl.getLength(); i++) {   
         System.out.print("车牌号码:"+ doc.getElementsByTagName_r("NO").item(i).getFirstChild().getNodeValue());   
         System.out.println("车主地址:"+ doc.getElementsByTagName_r("ADDR").item(i).getFirstChild().getNodeValue());   
        }   
       } catch (Exception e) {   
        e.printStackTrace();   
       }   
    }   
    }



    第二种,DOM4J实现方法
    import java.io.*;   
    import java.util.*;   
    import org.dom4j.*;   
    import org.dom4j.io.*;   
     
    public class MyXMLReader2DOM4J {   
    public static void main(String arge[]) {   
      long lasting = System.currentTimeMillis();   
      try {   
        File f = new File("data_10k.xml");   
        SAXReader reader = new SAXReader();   
        Document doc = reader.read(f);   
        Element root = doc.getRootElement();   
        Element foo;   
       for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {   
         foo = (Element) i.next();   
         System.out.print("车牌号码:" + foo.elementText("NO"));   
         System.out.println("车主地址:" + foo.elementText("ADDR"));   
        }   
       } catch (Exception e) {   
        e.printStackTrace();   
       }   
    }   
    }


    第三种 JDOM实现方法:
    import java.io.*;   
    import java.util.*;   
    import org.jdom.*;   
    import org.jdom.input.*;   
     
    public class MyXMLReader2JDOM {   
    public static void main(String arge[]) {   
      long lasting = System.currentTimeMillis();   
      try {   
        SAXBuilder builder = new SAXBuilder();   
        Document doc = builder.build(new File("data_10k.xml"));   
        Element foo = doc.getRootElement();   
        List allChildren = foo.getChildren();   
       for (int i = 0; i < allChildren.size(); i++) {   
         System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText());   
         System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText());   
        }   
       } catch (Exception e) {   
        e.printStackTrace();   
       }   
    }   
    }


    第四种SAX实现方法:
    import javax.xml.parsers.SAXParser;   
    import javax.xml.parsers.SAXParserFactory;   
     
    import org.xml.sax.Attributes;   
    import org.xml.sax.InputSource;   
    import org.xml.sax.SAXException;   
    import org.xml.sax.helpers.DefaultHandler;   
     
    public class MyXMLReader2SAX extends DefaultHandler {   
     
    java.util.Stack tags = new java.util.Stack();   
     
    public MyXMLReader2SAX() {   
      super();   
    }   
     
    public static void main(String args[]) {   
      long lasting = System.currentTimeMillis();   
      try {   
        SAXParserFactory sf = SAXParserFactory.newInstance();   
        SAXParser sp = sf.newSAXParser();   
        MyXMLReader2SAX reader = new MyXMLReader2SAX();   
        sp.parse(new InputSource("data_10k.xml"), reader);   
       } catch (Exception e) {   
        e.printStackTrace();   
       }   
     
       System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)   
         + "毫秒");   
    }   
     
    public void characters(char ch[], int start, int length)   
       throws SAXException {   
       String tag = (String) tags.peek();   
      if (tag.equals("NO")) {   
        System.out.print("车牌号码:" + new String(ch, start, length));   
       }   
      if (tag.equals("ADDR")) {   
        System.out.println("地址:" + new String(ch, start, length));   
       }   
    }   
     
    public void startElement(String uri, String localName, String qName,   
        Attributes attrs) {   
       tags.push(qName);   
    }   
    }
  • 相关阅读:
    第七周学习进度总结
    软件需求分析阅读笔记3
    第二周课堂小测:判断数组的最大子数组
    Android记账本开发(四):使用第三方插件库完成饼图数据显示
    Android记账本开发(三):数据库开发
    Android记账本开发(二):实现注册登录功能
    Android记账本开发(一):整体UI界面布局
    Android:Handle与Service
    上篇博客简单实例:字典与通讯录
    Android:数据存储技术
  • 原文地址:https://www.cnblogs.com/zhanglimei/p/6723471.html
Copyright © 2011-2022 走看看