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

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

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

    隨筆 - 154  文章 - 60  trackbacks - 0
    <2007年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    聲明:

    該blog是為了收集資料,認識朋友,學習、提高技術,所以本blog的內(nèi)容除非聲明,否則一律為轉載?。?br />
    感謝那些公開自己技術成果的高人們!?。?/p> 支持開源,尊重他人的勞動!!

    常用鏈接

    留言簿(3)

    隨筆分類(148)

    隨筆檔案(143)

    收藏夾(2)

    其他

    學習(技術)

    觀察思考(非技術)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    xml文件:

    <?xml version="1.0" encoding="GB2312" standalone="no"?>
    <books>
        
    <book email="zhoujunhui">
            
    <name>rjzjh</name>
            
    <price>jjjjjj</price>
        
    </book>
    </books>

    代碼:

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    //下面主要是org.xml.sax包的類
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;

    public class DomParse {

        
    public DomParse(){
            
    //(1)得到DOM解析器的工廠實例
            DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
            
    //得到javax.xml.parsers.DocumentBuilderFactory;類的實例就是我們要的解析器工廠
            try {
                
    //(2)從DOM工廠獲得DOM解析器
                DocumentBuilder dombuilder=domfac.newDocumentBuilder();
                
    //通過javax.xml.parsers.DocumentBuilderFactory實例的靜態(tài)方法newDocumentBuilder()得到DOM解析器
                
    //(3)把要解析的XML文檔轉化為輸入流,以便DOM解析器解析它
                InputStream is=new FileInputStream("test1.xml");            
                
    //(4)解析XML文檔的輸入流,得到一個Document
                Document doc=dombuilder.parse(is);
                
    //由XML文檔的輸入流得到一個org.w3c.dom.Document對象,以后的處理都是對Document對象進行的
                
    //(5)得到XML文檔的根節(jié)點
                Element root=doc.getDocumentElement();
                
    //在DOM中只有根節(jié)點是一個org.w3c.dom.Element對象。
                
    //(6)得到節(jié)點的子節(jié)點
                NodeList books=root.getChildNodes();
                
                
    if(books!=null){
                    
    for(int i=0;i<books.getLength();i++){
                        Node book
    =books.item(i);
                        
    if(book.getNodeType()==Node.ELEMENT_NODE){
                            
    //(7)取得節(jié)點的屬性值
                            String email=book.getAttributes().getNamedItem("email").getNodeValue();
                            System.out.println(email);
                            
    //注意,節(jié)點的屬性也是它的子節(jié)點。它的節(jié)點類型也是Node.ELEMENT_NODE
                            
    //(8)輪循子節(jié)點
                            for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()){
                                
    if(node.getNodeType()==Node.ELEMENT_NODE){
                                    
    if(node.getNodeName().equals("name")){
                                        String name
    =node.getNodeValue();
                                        String name1
    =node.getFirstChild().getNodeValue();
                                        System.out.println(name);
                                        System.out.println(name1);
                                    }

                                    
    if(node.getNodeName().equals("price")){
                                        String price
    =node.getFirstChild().getNodeValue();
                                        System.out.println(price);
                                    }

                                }

                            }

                        }

                    }
    //(6)這是用一個org.w3c.dom.NodeList接口來存放它所有子節(jié)點的,還有一種輪循子節(jié)點的方法,后面有介紹
                }

            }
     catch (ParserConfigurationException e) {
                e.printStackTrace();
            }
     catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     catch (SAXException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();
            }

        }


        
    public static void main(String[] args) {
            
    new DomParse();
        }

    }


    這段代碼的打印輸出為:

      null

      alterrjzjh

      jjjjjj

      從上面可以看出

      String name=node.getNodeValue();

      是一個空值。而

      String name1=node.getFirstChild().getNodeValue();

      才是真正的值,這是因為DOM把<name>rjzjh</name>也當作是兩層結構的節(jié)點,其父節(jié)點

    posted on 2007-11-21 14:47 lk 閱讀(14191) 評論(2)  編輯  收藏 所屬分類: xml

    FeedBack:
    # re: java 讀xml文件例子[未登錄] 2012-10-31 17:56 hh
    hh  回復  更多評論
      
    # re: java 讀xml文件例子[未登錄] 2014-01-25 21:02 啦啦啦
    @hh
    為什么只能讀取指定文檔而不是針對所有文檔都能讀取呢?這不是浪費代碼嗎?  回復  更多評論
      
    主站蜘蛛池模板: 国产亚洲情侣一区二区无码AV| 亚洲精品理论电影在线观看 | 亚洲AV日韩AV永久无码绿巨人 | 亚洲偷自拍拍综合网| 亚洲日韩精品无码AV海量| 95免费观看体验区视频| 亚洲一级特黄大片无码毛片| 久久国产乱子伦精品免费看| 亚洲国产精品激情在线观看 | 国产黄片不卡免费| 国产精品免费看久久久无码| 久久亚洲sm情趣捆绑调教| 一区在线免费观看| 亚洲国产成人久久一区久久| 日韩中文字幕免费视频| 在线观看亚洲一区二区| 免费国产小视频在线观看| jzzijzzij在线观看亚洲熟妇| 国产一精品一AV一免费孕妇| 亚洲国产精品人久久电影| 国产人成免费视频网站| 亚洲网站在线播放| 久久久久久免费视频| 亚洲AV第一成肉网| 亚洲国产精品成人AV无码久久综合影院| 最近免费最新高清中文字幕韩国| 狠狠热精品免费观看| 国产亚洲成人久久| 午夜a级成人免费毛片| 亚洲国产精品嫩草影院| 亚洲AV无码国产精品麻豆天美| 日韩在线永久免费播放| 又硬又粗又长又爽免费看| 久久久久亚洲精品成人网小说| 国产视频精品免费| 成人免费毛片内射美女-百度| 亚洲精品人成网线在线播放va| 亚洲色图国产精品| 国产男女性潮高清免费网站| 99久久99这里只有免费费精品| 久久免费精品视频|