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

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

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

    Chinese To English     英文 轉(zhuǎn) 中文             
             
    隨筆-27  評論-53  文章-0  trackbacks-0
    1、XML文件persons.xml內(nèi)容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <persons>
      
    <person><name>jak</name><sex></sex></person>
      
    <person>
        
    <name>jcy</name>
        
    <sex></sex>
      
    </person>
    </persons>

    2、java解析代碼如下:

     1 package net.vicp.jiasoft;
     2 
     3 import javax.xml.parsers.*;
     4 import java.io.IOException;
     5 import org.xml.sax.SAXException;
     6 import org.w3c.dom.Document;
     7 import org.w3c.dom.NodeList;
     8 import org.w3c.dom.Node;
     9 
    10 /**
    11  * <p>Title: Dom解析XML示例</p>
    12  *
    13  * <p>Description: Dom解析XML</p>
    14  *
    15  * <p>Copyright: Copyright (c) 2008</p>
    16  *
    17  * <p>Company: Jiasoft</p>
    18  *
    19  * @author Jak.Shen
    20  * @version 1.0
    21  */
    22 public class DomXml {
    23     public void parsersXml() {
    24         //實例化一個文檔構(gòu)建器工廠
    25         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    26         try {
    27             //通過文檔構(gòu)建器工廠獲取一個文檔構(gòu)建器
    28             DocumentBuilder db = dbf.newDocumentBuilder();
    29             //通過文檔通過文檔構(gòu)建器構(gòu)建一個文檔實例
    30             Document doc = db.parse("persons.xml");
    31             //獲取所有名字為 “person” 的節(jié)點
    32             NodeList nl1 = doc.getElementsByTagName("person");
    33             int size1 = nl1.getLength();
    34             for (int i = 0; i < size1; i++) {
    35                 Node n = nl1.item(i);
    36                 //獲取 n 節(jié)點下所有的子節(jié)點。此處值得注意,在DOM解析時會將所有回車都視為 n 節(jié)點的子節(jié)點。
    37                 NodeList nl2 = n.getChildNodes();
    38                 //因為上面的原因,在此例中第一個 n 節(jié)點有 2 個子節(jié)點,而第二個 n 節(jié)點則有 5 個子節(jié)點(因為多了3個回車)。
    39                 int size2 = nl2.getLength();
    40                 for (int j = 0; j < size2; j++) {
    41                     Node n2 = nl2.item(j);
    42                     //還是因為上面的原因,故此要處判斷當(dāng) n2 節(jié)點有子節(jié)點的時才輸出。
    43                     if (n2.hasChildNodes()) {
    44                         System.out.println(n2.getNodeName() + " = " +
    45                                            n2.getFirstChild().getNodeValue());
    46                     }
    47                 }
    48             }
    49         } catch (ParserConfigurationException ex) {
    50             ex.printStackTrace();
    51         } catch (IOException ex) {
    52             ex.printStackTrace();
    53         } catch (SAXException ex) {
    54             ex.printStackTrace();
    55         }
    56     }
    57 
    58     public static void main(String[] args) {
    59         DomXml domxml = new DomXml();
    60         domxml.parsersXml();
    61     }
    62 }




    杰森 
    郵箱:json.shen(at)gmail.com
    網(wǎng)站:www.shenjia.org
    posted on 2008-05-24 15:42 杰森 閱讀(13422) 評論(11)  編輯  收藏 所屬分類: JavaSE

    評論:
    # re: Java Dom解析XML 2008-05-27 10:12 | JAVA_START
    嘿嘿!  回復(fù)  更多評論
      
    # re: Java Dom解析XML[未登錄] 2008-08-08 15:55 | Scott.H
    <person id="1">
    </person>

    這里的id應(yīng)該怎么得到呢  回復(fù)  更多評論
      
    # re: Java Dom解析XML 2008-08-10 12:46 | Jak.Shen
    @Scott.H

    你說的id是person節(jié)點的屬性,屬性不是子節(jié)點,所以獲取上面所寫的nl1的屬性id即可。
    nl1.getAttributes();  回復(fù)  更多評論
      
    # re: Java Dom解析XML 2008-11-12 15:31 | 慕娉婷
    謝謝你!  回復(fù)  更多評論
      
    # re: Java Dom解析XML 2008-11-12 16:58 | Huaxu's
    @慕娉婷
    不用客氣!
      回復(fù)  更多評論
      
    # re: Java Dom解析XML 2011-06-22 09:48 | 李瀟
    謝了,這兩天一直糾結(jié)那個java dom解析xml為什么子節(jié)點數(shù)總是不對,總是多幾個,現(xiàn)在明白了,是把回車當(dāng)子節(jié)點了,還需要多一層判斷。謝謝你的文章  回復(fù)  更多評論
      
    # re: Java Dom解析XML 2011-12-20 14:02 | dellheng
    多謝博主提醒:此處值得注意,在DOM解析時會將所有回車都視為 n 節(jié)點的子節(jié)點。
    我試用了以下幾種判斷
    if(childNode.hasChildNodes()) 有子節(jié)點或TextContent才行
    if(childNode.hasAttributes()) 有屬性才行
    if(childNode.getNodeName().equals("part")) 必須使用節(jié)點名稱
    這個最好 是判斷類型的
    if(childNode.getNodeType()==Node.ELEMENT_NODE)
    希望對大家有幫助  回復(fù)  更多評論
      
    # re: Java Dom解析XML[未登錄] 2012-05-22 19:37 | java
    怎么換個XML文件該程序就解析不了了啊  回復(fù)  更多評論
      
    # re: Java Dom解析XML[未登錄] 2012-06-03 16:19 | hello
    以前寫js的時候就郁悶了很久很久。。。@李瀟
      回復(fù)  更多評論
      
    # re: Java Dom解析XML 2012-07-16 15:26 | http://www.legow.cn/
    # re: Java Dom解析XML[未登錄] 2014-07-07 17:13 | howard
    怎么獲取name對應(yīng)的內(nèi)容是什么呢  回復(fù)  更多評論
      
    嗨117
    主站蜘蛛池模板: 久久久久亚洲精品天堂久久久久久| 成年午夜视频免费观看视频| 亚洲а∨天堂久久精品| 亚洲日韩亚洲另类激情文学| 老司机在线免费视频| 亚洲成年人免费网站| 2021在线观看视频精品免费| 亚洲AV永久无码精品| 久久久久免费看黄a级试看| 久久青草亚洲AV无码麻豆| 永久免费不卡在线观看黄网站| 亚洲A∨无码无在线观看| 中国精品一级毛片免费播放| 亚洲高清国产AV拍精品青青草原| 免费无码又爽又刺激高潮软件| 久久精品国产亚洲av麻豆| 免费91麻豆精品国产自产在线观看| 亚洲日韩区在线电影| 18观看免费永久视频| 国产精品亚洲综合久久| 日本久久久免费高清| 乱人伦中文视频在线观看免费| 激情综合色五月丁香六月亚洲| 久久久精品午夜免费不卡| 亚洲沟沟美女亚洲沟沟| 免费高清在线影片一区| 一本久久免费视频| 亚洲国产成人久久综合一| 毛色毛片免费观看| 草久免费在线观看网站| 亚洲天堂中文资源| 女人与禽交视频免费看| 成在线人直播免费视频| 久久精品国产亚洲av麻豆小说| 精品国产精品久久一区免费式| h视频在线免费观看| 亚洲激情校园春色| 亚洲国产精品国产自在在线| 免费看搞黄视频网站| 亚洲日韩AV一区二区三区中文| 久久久久亚洲av成人无码电影|