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

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

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

    隨筆 - 3, 文章 - 152, 評(píng)論 - 17, 引用 - 0
    數(shù)據(jù)加載中……

    用dom4j建立,修改XML文檔,并解決格式化輸出和中文問(wèn)題

     
    <books>
      <!--This is a test for dom4j, holen, 2004.9.11-->
      <book show="no">
           <title>Dom4j Tutorials</title>
      </book>
      <book show="no">
           <title>Lucene Studing</title>
      </book>
      <book show="no">
           <title>Lucene in Action</title>
      </book>
      <owner>O'Reilly</owner>
    </books>

     ---------------------

    package com.holen.dom4j;

     

    import java.io.File;

    import java.io.FileWriter;

    import java.util.Iterator;

    import java.util.List;

     

    import org.dom4j.Attribute;

    import org.dom4j.Document;

    import org.dom4j.DocumentHelper;

    import org.dom4j.Element;

    import org.dom4j.io.OutputFormat;

    import org.dom4j.io.SAXReader;

    import org.dom4j.io.XMLWriter;

     

    /**

     * @author Holen Chen

     */

    public class Dom4jDemo {

       

        public Dom4jDemo() {

        }

       

        /**

         * 建立一個(gè)XML文檔,文檔名由輸入?yún)?shù)決定

         * @param filename 需建立的文件名

         * @return 返回操作結(jié)果, 0表失敗, 1表成功

         */

        public int createXMLFile(String filename){

           /** 返回操作結(jié)果, 0表失敗, 1表成功 */

           int returnValue = 0;

           /** 建立document對(duì)象 */

            Document document = DocumentHelper.createDocument();

           /** 建立XML文檔的根books */

            Element booksElement = document.addElement("books");

           /** 加入一行注釋 */

            booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");

           /** 加入第一個(gè)book節(jié)點(diǎn) */

            Element bookElement = booksElement.addElement("book");

           /** 加入show參數(shù)內(nèi)容 */

            bookElement.addAttribute("show","yes");

           /** 加入title節(jié)點(diǎn) */

            Element titleElement = bookElement.addElement("title");

           /** title設(shè)置內(nèi)容 */

            titleElement.setText("Dom4j Tutorials");

          

           /** 類似的完成后兩個(gè)book */

            bookElement = booksElement.addElement("book");

            bookElement.addAttribute("show","yes");

            titleElement = bookElement.addElement("title");

            titleElement.setText("Lucene Studing");

            bookElement = booksElement.addElement("book");

            bookElement.addAttribute("show","no");

            titleElement = bookElement.addElement("title");

            titleElement.setText("Lucene in Action");

          

           /** 加入owner節(jié)點(diǎn) */

            Element ownerElement = booksElement.addElement("owner");

            ownerElement.setText("O'Reilly");

          

           try{

               /** document中的內(nèi)容寫(xiě)入文件中 */

               XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));

               writer.write(document);

               writer.close();

               /** 執(zhí)行成功,需返回1 */

               returnValue = 1;

            }catch(Exception ex){

               ex.printStackTrace();

           }

                  

            return returnValue;

        }

       

        /**

         * 修改XML文件中內(nèi)容,并另存為一個(gè)新文件

         * 重點(diǎn)掌握dom4j中如何添加節(jié)點(diǎn),修改節(jié)點(diǎn),刪除節(jié)點(diǎn)

         * @param filename 修改對(duì)象文件

         * @param newfilename 修改后另存為該文件

         * @return 返回操作結(jié)果, 0表失敗, 1表成功

         */

        public int ModiXMLFile(String filename,String newfilename){

           int returnValue = 0;

           try{

               SAXReader saxReader = new SAXReader();   

               Document document = saxReader.read(new File(filename));

               /** 修改內(nèi)容之一: 如果book節(jié)點(diǎn)中show參數(shù)的內(nèi)容為yes,則修改成no */

               /** 先用xpath查找對(duì)象 */

               List list = document.selectNodes("/books/book/@show" );   

               Iterator iter = list.iterator();

               while(iter.hasNext()){

                   Attribute attribute = (Attribute)iter.next();

                   if(attribute.getValue().equals("yes")){

                       attribute.setValue("no");

                   }  

               }

              

               /**

                * 修改內(nèi)容之二: owner項(xiàng)內(nèi)容改為Tshinghua

                * 并在owner節(jié)點(diǎn)中加入date節(jié)點(diǎn),date節(jié)點(diǎn)的內(nèi)容為2004-09-11,還為date節(jié)點(diǎn)添加一個(gè)參數(shù)type

                */

               list = document.selectNodes("/books/owner" );

               iter = list.iterator();

               if(iter.hasNext()){

                   Element ownerElement = (Element)iter.next();

                   ownerElement.setText("Tshinghua");

                   Element dateElement = ownerElement.addElement("date");

                   dateElement.setText("2004-09-11");

                   dateElement.addAttribute("type","Gregorian calendar");

               }

              

               /** 修改內(nèi)容之三: title內(nèi)容為Dom4j Tutorials,則刪除該節(jié)點(diǎn) */

               list = document.selectNodes("/books/book");

               iter = list.iterator();

               while(iter.hasNext()){

                   Element bookElement = (Element)iter.next();

                   Iterator iterator = bookElement.elementIterator("title");

                   while(iterator.hasNext()){

                       Element titleElement=(Element)iterator.next();

                       if(titleElement.getText().equals("Dom4j Tutorials")){

                          bookElement.remove(titleElement);

                      }

                   }

               }          

              

               try{

                   /** document中的內(nèi)容寫(xiě)入文件中 */

                   XMLWriter writer = new XMLWriter(new FileWriter(new File(newfilename)));

                   writer.write(document);

                   writer.close();

                   /** 執(zhí)行成功,需返回1 */

                   returnValue = 1;

               }catch(Exception ex){

                   ex.printStackTrace();

               }

              

            }catch(Exception ex){

               ex.printStackTrace();

           }

            return returnValue;

        }

       

        /**

         * 格式化XML文檔,并解決中文問(wèn)題

         * @param filename

         * @return

         */

        public int formatXMLFile(String filename){

           int returnValue = 0;

           try{

               SAXReader saxReader = new SAXReader();   

               Document document = saxReader.read(new File(filename));

               XMLWriter output = null;

               /** 格式化輸出,類型IE瀏覽一樣 */

               OutputFormat format = OutputFormat.createPrettyPrint();

               /** 指定XML字符集編碼 */

               format.setEncoding("GBK");

               output = new XMLWriter(new FileWriter(new File(filename)),format);

               output.write(document);

               output.close();       

               /** 執(zhí)行成功,需返回1 */

               returnValue = 1;      

            }catch(Exception ex){

               ex.printStackTrace();

           }

            return returnValue;

        }

     

        public static void main(String[] args) {

            Dom4jDemo temp = new Dom4jDemo();

            System.out.println(temp.createXMLFile("d://holen.xml"));

            System.out.println(temp.ModiXMLFile("d://holen.xml","d://holen2.xml"));

            System.out.println(temp.formatXMLFile("d://holen2.xml"));

        }

    }

    posted on 2005-03-23 13:14 閱讀(423) 評(píng)論(0)  編輯  收藏 所屬分類: Java_Xml

    主站蜘蛛池模板: 亚洲国产中文在线二区三区免| 四虎影视久久久免费观看| 精品视频一区二区三区免费| 午夜精品在线免费观看| 亚洲va在线va天堂va不卡下载| 日韩成人精品日本亚洲| 猫咪免费人成网站在线观看| 国产亚洲精品高清在线| 亚洲AV综合色区无码一二三区| 30岁的女人韩剧免费观看| 亚洲乳大丰满中文字幕| 亚洲a无码综合a国产av中文| 免费看片在线观看| 久久久亚洲欧洲日产国码农村| 成人特级毛片69免费观看| 性盈盈影院免费视频观看在线一区| 亚洲尹人九九大色香蕉网站| 高清永久免费观看| 免费久久精品国产片香蕉| 日本亚洲色大成网站www久久| 91av视频免费在线观看| 亚洲A∨无码一区二区三区| 精品国产呦系列在线观看免费 | 亚洲精品无码av中文字幕| 亚洲精品视频在线观看免费| 久久夜色精品国产嚕嚕亚洲av| 久青草国产免费观看| 亚洲v国产v天堂a无码久久| 亚洲精品国产av成拍色拍| 在线观看的免费网站| 亚洲理论片中文字幕电影| 8090在线观看免费观看| 亚洲国产成人久久精品动漫| 免费无码又爽又刺激网站| 一本色道久久综合亚洲精品| 国产免费内射又粗又爽密桃视频| 全黄a免费一级毛片人人爱| 极品色天使在线婷婷天堂亚洲| 成人永久免费高清| 亚洲国产精品无码久久| 青青草国产免费久久久下载|