<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的內容除非聲明,否則一律為轉載?。?br />
    感謝那些公開自己技術成果的高人們?。?!

    支持開源,尊重他人的勞動??!

    常用鏈接

    留言簿(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實例的靜態方法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文檔的根節點
                Element root=doc.getDocumentElement();
                
    //在DOM中只有根節點是一個org.w3c.dom.Element對象。
                
    //(6)得到節點的子節點
                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)取得節點的屬性值
                            String email=book.getAttributes().getNamedItem("email").getNodeValue();
                            System.out.println(email);
                            
    //注意,節點的屬性也是它的子節點。它的節點類型也是Node.ELEMENT_NODE
                            
    //(8)輪循子節點
                            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接口來存放它所有子節點的,還有一種輪循子節點的方法,后面有介紹
                }

            }
     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>也當作是兩層結構的節點,其父節點

    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
    為什么只能讀取指定文檔而不是針對所有文檔都能讀取呢?這不是浪費代碼嗎?  回復  更多評論
      
    主站蜘蛛池模板: 午夜精品免费在线观看| 永久免费无码网站在线观看个| 国产精品免费大片一区二区| 国产成人精品免费直播 | 在线免费观看毛片网站| 亚洲综合色7777情网站777| 成人福利免费视频| 亚洲国产成人精品激情| 好男人视频社区精品免费| 成人亚洲国产va天堂| 在线中文高清资源免费观看| 亚洲偷自精品三十六区| 成人免费a级毛片| 亚洲免费综合色在线视频| 国产免费人成视频在线观看| 国产亚洲精品2021自在线| 免费播放特黄特色毛片| 一本到卡二卡三卡免费高| 国产亚洲成av人片在线观看| 99久久99久久精品免费观看| 亚洲精品成人图区| 国产青草视频在线观看免费影院| 免费看又黄又爽又猛的视频软件| 亚洲综合久久夜AV | 国产亚洲免费的视频看| 亚洲综合久久成人69| 女人张开腿给人桶免费视频| 亚洲精品一卡2卡3卡四卡乱码| gogo全球高清大胆亚洲| 国产午夜免费高清久久影院| 亚洲国产综合在线| 免费在线一级毛片| 无码人妻AV免费一区二区三区| 亚洲一区二区三区在线| 国产免费久久精品久久久| 国产午夜不卡AV免费| 亚洲人精品亚洲人成在线| 久久激情亚洲精品无码?V| 最近中文字幕免费完整| 国产亚洲视频在线| 亚洲永久永久永久永久永久精品|