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

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

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

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(lèi)(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    Dom4j下載及使用Dom4j讀寫(xiě)XML簡(jiǎn)介

    sitinspring(如坐春風(fēng))原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者及出處.

    要使用dom4j讀寫(xiě)XML文檔,需要先下載dom4j包,dom4j官方網(wǎng)站在 http://www.dom4j.org/
    目前最新dom4j包下載地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip

    解開(kāi)后有兩個(gè)包,僅操作XML文檔的話把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的話還需要加入包jaxen-1.1-beta-7.jar.

    以下是相關(guān)操作:

    一.Document對(duì)象相關(guān)

    1.讀取XML文件,獲得document對(duì)象.
                SAXReader reader = new SAXReader();
                Document  document 
    = reader.read(new File("input.xml"));


    2.解析XML形式的文本,得到document對(duì)象.
                String text = "<members></members>";
                Document document 
    = DocumentHelper.parseText(text);

    3.主動(dòng)創(chuàng)建document對(duì)象.
                Document document = DocumentHelper.createDocument();
                Element root 
    = document.addElement("members");// 創(chuàng)建根節(jié)點(diǎn)

    二.節(jié)點(diǎn)相關(guān)

    1.獲取文檔的根節(jié)點(diǎn).
    Element rootElm = document.getRootElement();

    2.取得某節(jié)點(diǎn)的單個(gè)子節(jié)點(diǎn).
    Element memberElm=root.element("member");// "member"是節(jié)點(diǎn)名

    3.取得節(jié)點(diǎn)的文字
    String text=memberElm.getText();
    也可以用:
    String text=root.elementText("name");
    這個(gè)是取得根節(jié)點(diǎn)下的name字節(jié)點(diǎn)的文字.

    4.取得某節(jié)點(diǎn)下名為"member"的所有字節(jié)點(diǎn)并進(jìn)行遍歷.
    List nodes = rootElm.elements("member");

    for (Iterator it = nodes.iterator(); it.hasNext();) {
       Element elm 
    = (Element) it.next();
       
    // do something
    }

    5.對(duì)某節(jié)點(diǎn)下的所有子節(jié)點(diǎn)進(jìn)行遍歷.
                for(Iterator it=root.elementIterator();it.hasNext();){
                    Element element 
    = (Element) it.next();
                    
    // do something
                }

    6.在某節(jié)點(diǎn)下添加子節(jié)點(diǎn).
    Element ageElm = newMemberElm.addElement("age");

    7.設(shè)置節(jié)點(diǎn)文字.
    ageElm.setText("29");

    8.刪除某節(jié)點(diǎn).
    parentElm.remove(childElm);// childElm是待刪除的節(jié)點(diǎn),parentElm是其父節(jié)點(diǎn)

    9.添加一個(gè)CDATA節(jié)點(diǎn).
            Element contentElm = infoElm.addElement("content");
            contentElm.addCDATA(diary.getContent());


    三.屬性相關(guān).
    1.取得某節(jié)點(diǎn)下的某屬性
                Element root=document.getRootElement();    
                Attribute attribute
    =root.attribute("size");// 屬性名name

    2.取得屬性的文字
                String text=attribute.getText();
    也可以用:
    String text2=root.element("name").attributeValue("firstname");
    這個(gè)是取得根節(jié)點(diǎn)下name字節(jié)點(diǎn)的屬性firstname的值.

    3.遍歷某節(jié)點(diǎn)的所有屬性
                Element root=document.getRootElement();    
                
    for(Iterator it=root.attributeIterator();it.hasNext();){
                    Attribute attribute 
    = (Attribute) it.next();
                    String text
    =attribute.getText();
                    System.out.println(text);
                }

    4.設(shè)置某節(jié)點(diǎn)的屬性和文字.
    newMemberElm.addAttribute("name""sitinspring");

    5.設(shè)置屬性的文字
                Attribute attribute=root.attribute("name");
                attribute.setText(
    "sitinspring");

    6.刪除某屬性
                Attribute attribute=root.attribute("size");// 屬性名name
                root.remove(attribute);

    四.將文檔寫(xiě)入XML文件.
    1.文檔中全為英文,不設(shè)置編碼,直接寫(xiě)入的形式.
    XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
    writer.write(document);
    writer.close();

    2.文檔中含有中文,設(shè)置編碼格式寫(xiě)入的形式.
                OutputFormat format = OutputFormat.createPrettyPrint();
                format.setEncoding(
    "GBK");    // 指定XML編碼        
                XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);
                
                writer.write(document);
                writer.close();

    五.字符串與XML的轉(zhuǎn)換
    1.將字符串轉(zhuǎn)化為XML
    String text = "<members> <member>sitinspring</member> </members>";
    Document document 
    = DocumentHelper.parseText(text);

    2.將文檔或節(jié)點(diǎn)的XML轉(zhuǎn)化為字符串.
                SAXReader reader = new SAXReader();
                Document  document 
    = reader.read(new File("input.xml"));            
                Element root
    =document.getRootElement();                
                String docXmlText
    =document.asXML();
                String rootXmlText
    =root.asXML();
                Element memberElm
    =root.element("member");
                String memberXmlText
    =memberElm.asXML();

    六.使用XPath快速找到節(jié)點(diǎn).
    讀取的XML文檔示例
    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
      
    <name>MemberManagement</name>
      
    <comment></comment>
      
    <projects>
        
    <project>PRJ1</project>
        
    <project>PRJ2</project>
        
    <project>PRJ3</project>
        
    <project>PRJ4</project>
      
    </projects>
      
    <buildSpec>
        
    <buildCommand>
          
    <name>org.eclipse.jdt.core.javabuilder</name>
          
    <arguments>
          
    </arguments>
        
    </buildCommand>
      
    </buildSpec>
      
    <natures>
        
    <nature>org.eclipse.jdt.core.javanature</nature>
      
    </natures>
    </projectDescription>

    使用XPath快速找到節(jié)點(diǎn)project.
     public static void main(String[] args){
        SAXReader reader 
    = new SAXReader();
        
        
    try{
          Document  doc 
    = reader.read(new File("sample.xml"));
          
          List projects
    =doc.selectNodes("/projectDescription/projects/project");
          
          Iterator it
    =projects.iterator();
          
          
    while(it.hasNext()){
            Element elm
    =(Element)it.next();       
            System.out.println(elm.getText());
          }

          
        }

        
    catch(Exception ex){
           ex.printStackTrace();
        }

      }

    posted on 2007-12-16 19:46 sitinspring 閱讀(10605) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java基礎(chǔ)

    sitinspring(http://m.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 久久综合AV免费观看| 无码人妻久久一区二区三区免费丨 | 亚洲风情亚Aⅴ在线发布| 四虎国产精品免费视| 中文字幕不卡高清免费| 亚洲视频免费一区| 国产成人精品高清免费| 中文字幕在线视频免费| 亚洲日韩在线中文字幕综合| 亚洲欭美日韩颜射在线二| 免费观看黄色的网站| 日本精品久久久久久久久免费| 国产成人亚洲精品青草天美| 无码日韩精品一区二区免费| 最近中文字幕mv免费高清在线| 国产精品亚洲AV三区| 久久亚洲最大成人网4438| 亚洲人成色7777在线观看不卡| 一个人免费日韩不卡视频| 老子影院午夜伦不卡亚洲| 中文字幕无码精品亚洲资源网久久| 亚洲性在线看高清h片| 91精品视频免费| 成在线人免费无码高潮喷水| 无忧传媒视频免费观看入口| 亚洲av综合日韩| 精品国产日韩亚洲一区91 | 在线视频免费观看www动漫| 三年片免费观看大全国语| 一区二区视频免费观看| 亚洲国产综合精品中文第一| 亚洲一级毛片免费在线观看| 亚洲日韩精品A∨片无码| 亚洲熟女一区二区三区| 亚洲人成无码网站| 日本亚洲成高清一区二区三区| 亚洲乱码中文字幕综合| 最近最新的免费中文字幕| 久久免费观看国产精品| 一级做a免费视频观看网站| 一级大黄美女免费播放|