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

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

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

    leisure

    JAVA - exceed,helloworld
    隨筆 - 50, 文章 - 0, 評(píng)論 - 11, 引用 - 0
    數(shù)據(jù)加載中……

    using dom4j to handle xml 使用dom4j操作xml

    dom4j是一個(gè)非常簡(jiǎn)單的開源項(xiàng)目。該類庫(kù)底層主要借助了Java集合框架,完美地支持對(duì)XML,XPath和XSLT的操作!

    xml示例:
    <?xml version="1.0" encoding="gbk"?>
    <games>
        
    <game ID="1">
            
    <name>極品飛車OL</name>
            
    <type>網(wǎng)絡(luò)游戲</type>
            
    <score>85</score>
        
    </game>
        
    <game ID="2">
            
    <name>仙劍奇?zhèn)b傳5</name>
            
    <type>單機(jī)游戲</type>
            
    <score>90</score>
        
    </game>
        
    <game ID="3">
            
    <name>地下城與勇士</name>
            
    <type>網(wǎng)絡(luò)游戲</type>
            
    <score>75</score>
        
    </game>
    </games>

    一、讀取
            SAXReader reader = new SAXReader();
            File file 
    = new File("d:\\games.xml");
            Document doc 
    = reader.read(file);
    SAXReader支持多種對(duì)象的讀取,包括File,Reader,InputStream,URL,InputSource。

    二、查找節(jié)點(diǎn)
        1、通過(guò)id查找節(jié)點(diǎn):
            Node node = doc.elementByID("2");
            
    // <game ID="2"><name>仙劍奇?zhèn)b傳5</name><type>單機(jī)游戲</type></game>        
            System.out.println(node.asXML());     

        2、通過(guò)XPath查找節(jié)點(diǎn)
            Node node = doc.selectSingleNode("/games/game[1]/name");    // game[1]獲取的是第1個(gè)節(jié)點(diǎn)
            System.out.println(node.getText());                                          // 極品飛車OL

            List nodeList = doc.selectNodes("/games/game[score>80]/name");    // 所有分?jǐn)?shù)大于80分的游戲節(jié)點(diǎn)下的name節(jié)點(diǎn)
            
    // 極品飛車OL 仙劍奇?zhèn)b傳5 
            for(int i = 0; i < nodeList.size(); i++) {
                Node node 
    = (Node)nodeList.get(i);
                System.out.println(node.getText());
            }

        3、獲取父節(jié)點(diǎn)
            Node node = doc.elementByID("1");
            System.out.println(node.getParent().getName());

    三、移除
        1、移除節(jié)點(diǎn)
            Element element = doc.elementByID("1");
            Node typeNode 
    = element.selectSingleNode("type");
            element.remove(typeNode);
            
    // <game ID="1"><name>極品飛車OL</name><score>85</score></game>
            System.out.println(element.asXML());

        2、移除屬性
            Element element = doc.elementByID("1");
            System.out.println(element.attributeValue(
    "ID"));                    // 1
            System.out.println(element.remove(element.attribute("ID")));    // true 移除成功 false 移除失敗
            System.out.println(element.attributeValue("ID"));                    // null

    四、添加與設(shè)置
    由于添加(add)和設(shè)置(set)方法與第三點(diǎn)移除類似。請(qǐng)穩(wěn)步直接看API。

    五、輸出xml
            OutputFormat format = new OutputFormat();
            format.setEncoding(
    "gbk");            // 設(shè)置xml文檔頭編碼 <?xml version="1.0" encoding="gbk"?>
            XMLWriter writer = new XMLWriter(new FileWriter(new File("d:\\games2.xml")), format);
            
    // write方法可接受Node、Element、Document、Attribute等對(duì)象
            writer.write(doc);
            writer.close();                            
    // 必須close才會(huì)生成文件

    六、CDATA
            Element element = new BaseElement("game");
            element.add(DocumentHelper.createCDATA(
    "戰(zhàn)神"));        // 添加 CDATA數(shù)據(jù)
            System.out.println(element.asXML());
            element.setText(element.getText());                                
    // 清除 CDATA標(biāo)志
            System.out.println(element.asXML());

    參考:
    dom4j api
    XPath 教程

    posted on 2011-09-20 00:16 leisure 閱讀(505) 評(píng)論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 亚洲AV无码专区国产乱码不卡| 99亚洲男女激情在线观看| 中文字幕亚洲综合久久2| 日韩成人毛片高清视频免费看| 免费看无码特级毛片| 中文字幕精品亚洲无线码一区 | 亚洲色偷拍另类无码专区| 免费看黄网站在线看| 亚洲精品在线视频| 在线免费视频你懂的| 国产亚洲精久久久久久无码| 亚洲国产精品成人精品软件| 中文字幕影片免费在线观看| 亚洲高清无码专区视频| 国产99精品一区二区三区免费 | 无码专区AAAAAA免费视频| 亚洲视频在线观看免费| 老司机午夜精品视频在线观看免费 | 91免费福利视频| 亚洲无线电影官网| 在线观看视频免费完整版| 亚洲乱码国产乱码精华| 亚洲国产精品自在拍在线播放| 国产视频精品免费视频| 亚洲黄色免费网址| 男人的好免费观看在线视频| 亚洲av无码专区国产乱码在线观看| 国产真人无码作爱免费视频| 亚洲视频在线免费播放| 免费黄色毛片视频| v片免费在线观看| 国产伦一区二区三区免费 | 一区二区三区四区免费视频| 亚洲欧洲日产专区| 国产中文字幕免费观看| 3344在线看片免费| 亚洲色偷精品一区二区三区| 成人亚洲性情网站WWW在线观看| 亚洲国产成人精品无码区二本| 24小时免费直播在线观看| 一级做a爰黑人又硬又粗免费看51社区国产精品视 |