<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    數(shù)據(jù)加載中……
    JAVA XML 解析之五-綜合小例子
    2008年4月21日  Edited By DingDangXiaoMa
    xml文件讀取,簡單例子。讀取NO及ADDR
    data_10k.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <RESULT>
        
    <VALUE>
            
    <NO>A1234</NO>
            
    <ADDR>省XX縣XX鎮(zhèn)XX路X段XX號</ADDR>
        
    </VALUE>
        
    <VALUE>
            
    <NO>B1234</NO>
            
    <ADDR>省XX市XX鄉(xiāng)XX村XX組</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 WDom {
        
    public static void main(String arge[]){
        
    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(
    "車牌號碼:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
        System.out.println(
    "車主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
         }
        }
    catch(Exception e){
        e.printStackTrace();
        }
        }
    }
    JDOM:
    import java.io.File;
    import java.util.List;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.input.SAXBuilder;
    public class WJDom {
        
    public static void main(String arge[]) {
        
    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 WSAX extends DefaultHandler {
        java.util.Stack tags = new java.util.Stack();

        
    public WSAX() {
            
    super();
        }
        
    public static void main(String args[]) {
            
    long lasting = System.currentTimeMillis();
            
    try {
            SAXParserFactory sf 
    = SAXParserFactory.newInstance();
            SAXParser sp 
    = sf.newSAXParser();
            WSAX reader 
    = new WSAX();
            sp.parse(
    new InputSource("data_10k.xml"), reader);
            } 
    catch (Exception e) {
            e.printStackTrace();
            }
            System.out.println(
    "運(yùn)行時間:" + (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).trim());
            }
            
    if (tag.equals("ADDR")) {
                System.out.println(
    "地址:" + new String(ch, start, length).trim());
            }
        }
        
    public void startElement(String uri,String localName,String qName,Attributes attrs) {
            tags.push(qName);
        }
        }
    SAX的方式運(yùn)行,會有問題,輸出的結(jié)果。ADDR,會有三行,這是為什么呢?

    DOM4j:
    import java.io.File;
    import java.util.Iterator;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    public class WDOM4j {

        
    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();
        }
        }
    }

    這幾種方法的比較:http://java.chinaitlab.com/XMLBeans/717370.html
    DOM,還是最基礎(chǔ)的操作。另外,DOM4j,在現(xiàn)在的java框架中也有應(yīng)用。
    好了就到這里,就是簡單的綜合了。有機(jī)會再寫寫例子吧。

    posted on 2008-04-21 18:02 叮當(dāng)小馬 閱讀(223) 評論(0)  編輯  收藏 所屬分類: XML

    主站蜘蛛池模板: 亚洲嫩草影院在线观看| 亚洲电影一区二区| 亚洲日韩国产一区二区三区在线| 久久精品视频免费| 国产亚洲av人片在线观看| 污污的视频在线免费观看| 免费人成视频在线观看视频 | 日韩免费的视频在线观看香蕉| 国产精品亚洲二区在线观看| 成人精品综合免费视频| 亚洲一区二区三区在线视频| 亚洲免费视频一区二区三区| 亚洲一区AV无码少妇电影☆| 免费在线看黄的网站| 亚洲精品美女久久久久| 亚洲三级高清免费| 亚洲AV无码精品国产成人| 四虎影永久在线高清免费| 一级免费黄色大片| 亚洲AV日韩AV永久无码久久| 最近免费mv在线电影| 中文有码亚洲制服av片| 免费国产a国产片高清| 在线观看人成视频免费无遮挡| 无码久久精品国产亚洲Av影片| 亚洲精品视频免费在线观看| 亚洲一区二区三区写真 | 欧洲人成在线免费| 亚洲xxxx18| 亚洲国产综合精品中文字幕| 最好免费观看高清在线| 97久久国产亚洲精品超碰热| 亚洲AV成人潮喷综合网| 日本视频在线观看永久免费| 亚洲乱码一二三四区国产| 亚洲免费日韩无码系列| 久久精品国产免费观看| 三年片在线观看免费观看大全中国| 亚洲国产精品特色大片观看完整版| 久久午夜免费视频| 九九免费精品视频在这里|