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>
                 <ADDR>四川省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();
              }
          }


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


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

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

          Copyright © FaithChen

          主站蜘蛛池模板: 永寿县| 河曲县| 柘荣县| 九龙坡区| 铁岭县| 两当县| 商水县| 泗洪县| 岚皋县| 抚顺县| 宜都市| 长宁县| 甘肃省| 易门县| 洛南县| 林周县| 合水县| 南雄市| 巴中市| 明光市| 驻马店市| 米易县| 渑池县| 池州市| 秦皇岛市| 通渭县| 黄浦区| 黄龙县| 平阴县| 巴楚县| 泰州市| 子长县| 沙河市| 从江县| 固阳县| 新昌县| 边坝县| 华阴市| 和田市| 思茅市| 长顺县|