XML的四種處理方式

          Posted on 2008-03-06 11:09 FaithChen 閱讀(255) 評(píng)論(0)  編輯  收藏
          四種xml操作方式的基本使用方法

          xml文件:

          <?xml version="1.0" encoding="GB2312"?>
          <RESULT>
              <VALUE>
                  <NO>A1234</NO>
                 <ADDR>四川省XX縣XX鎮(zhèn)XX路X段XX號(hào)</ADDR>
              </VALUE>
              <VALUE>
                  <NO>B1234</NO>
                ?。糀DDR>四川省XX市XX鄉(xiāng)XX村XX組</ADDR>
              </VALUE>
          </RESULT>

          1)DOM

          import java.io.*;
          import java.util.*;
          import org.w3c.dom.*;
          import javax.xml.parsers.*;

          public class MyXMLReader{
           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("VALUE");
             for (int i=0;i<nl.getLength();i++){
              System.out.print("車牌號(hào)碼:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
              System.out.println("車主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
             }
            }catch(Exception e){
             e.printStackTrace();
          }

          2)SAX

          import org.xml.sax.*;
          import org.xml.sax.helpers.*;
          import javax.xml.parsers.*;

          public class MyXMLReader extends DefaultHandler {

           java.util.Stack tags = new java.util.Stack();
           public MyXMLReader() {
            super();
             }

           public static void main(String args[]) {
            long lasting = System.currentTimeMillis();
            try {
             SAXParserFactory sf = SAXParserFactory.newInstance();
             SAXParser sp = sf.newSAXParser();
             MyXMLReader reader = new MyXMLReader();
             sp.parse(new InputSource("data_10k.xml"), reader);
            } catch (Exception e) {
             e.printStackTrace();
            }

            System.out.println("運(yùn)行時(shí)間:" + (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("車牌號(hào)碼:" + 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) JDOM

          import java.io.*;
          import java.util.*;
          import org.jdom.*;
          import org.jdom.input.*;

          public class MyXMLReader {

           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("車牌號(hào)碼:" + ((Element)allChildren.get(i)).getChild("NO").getText());
              System.out.println("車主地址:" + ((Element)allChildren.get(i)).getChild("ADDR").getText());
             }
            } catch (Exception e) {
             e.printStackTrace();
          }

          }

          4)DOM4J

          import java.io.*;
          import java.util.*;
          import org.dom4j.*;
          import org.dom4j.io.*;

          public class MyXMLReader {

           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("車牌號(hào)碼:" + foo.elementText("NO"));
              System.out.println("車主地址:" + foo.elementText("ADDR"));
             }
            } catch (Exception e) {
             e.printStackTrace();
              }
          }


          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          posts - 4, comments - 0, trackbacks - 0, articles - 4

          Copyright © FaithChen

          主站蜘蛛池模板: 闽清县| 通江县| 伊金霍洛旗| 江口县| 江孜县| 准格尔旗| 侯马市| 信阳市| 革吉县| 江阴市| 梁平县| 山阳县| 皋兰县| 两当县| 江川县| 星座| 津南区| 新源县| 鲁甸县| 汝南县| 绩溪县| 若尔盖县| 红安县| 九龙城区| 图木舒克市| 海城市| 阿克苏市| 吐鲁番市| 红安县| 安康市| 瑞安市| 崇左市| 青浦区| 长汀县| 江门市| 凤山县| 西乡县| 庆城县| 江津市| 南投县| 和平区|