<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
    為什么只能讀取指定文檔而不是針對所有文檔都能讀取呢?這不是浪費代碼嗎?  回復  更多評論
      
    主站蜘蛛池模板: 亚欧在线精品免费观看一区| 国产亚洲A∨片在线观看| 日韩精品免费视频| 猫咪免费人成网站在线观看入口| 亚洲一卡二卡三卡| 亚洲综合无码一区二区| 久久精品亚洲综合| 日本亚洲欧洲免费天堂午夜看片女人员 | 国产亚洲精品精品精品| 亚洲国产精品一区二区三区在线观看 | 福利片免费一区二区三区| 亚洲性69影院在线观看| 亚洲欧洲日韩国产综合在线二区| 亚洲综合色成在线播放| 亚洲一本大道无码av天堂| 国产免费午夜a无码v视频| 国产又黄又爽又刺激的免费网址 | 亚洲欧洲日产国码高潮αv| 四虎影视精品永久免费网站| 日本免费一本天堂在线| 国产一级一片免费播放| 亚洲第一成人影院| 国产精一品亚洲二区在线播放 | 18禁美女裸体免费网站| 免费观看的毛片大全| 大陆一级毛片免费视频观看| 免费看美女被靠到爽| 亚洲高清国产拍精品青青草原| 亚洲日韩在线观看| 亚洲欧洲日韩不卡| 在线a亚洲老鸭窝天堂av高清| 另类图片亚洲校园小说区| 中文字幕在线免费看| 在线看片韩国免费人成视频| 日本高清免费中文字幕不卡| 亚洲人成网站色在线入口| 亚洲精品福利视频| 亚洲中文字幕无码mv| 国产免费牲交视频免费播放| h视频在线免费看| 亚洲精品视频免费|