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

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

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

    Java學習

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

     

    dom4j(Java code)

    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;

    publicclass Dom4jDemo {
       
       
    publicboolean createXML(String fileName){
           
    boolean isOk=false;
           
    //建立document對象
            Document doc= DocumentHelper.createDocument();
           
    //建立XML文檔的根books
            Element students= doc.addElement("students");
            students.addComment(
    "This is a test for dom4j");//加入一行注釋
            /**加入第一個student節點*/
            Element student
    = students.addElement("student");//加入第一個student節點
            student.addAttribute("value","god");//加入value屬性和值
            Element name= student.addElement("name");//加入name節點
            name.setText("finina");//為name設置值
            Element age=student.addElement("age");//加入age節點
            age.setText("25");//
    為age設置值
            Element sex=student.addElement("sex");//加入sex節點
            sex.setText("male");//為sex設置值
            /**加入第二個student節點*/
            student
    = students.addElement("student");
            student.addAttribute(
    "value","cat");
            name
    = student.addElement("name");
            name.setText(
    "fly");
            age
    =student.addElement("age");
            age.setText(
    "17");
            sex
    =student.addElement("sex");
            sex.setText(
    "female");
           
    /**加入team節點*/
            Element team
    =students.addElement("team");
            team.addText(
    "05093A");
           
    /**
             *將doc中的內容寫入xml文件中
             *
    */
           
    try{
                OutputFormat format
    = OutputFormat.createPrettyPrint();//設置格式
                format.setEncoding("GBK");//必要,否則無法解析中文
               
    //輸出為文件
                XMLWriter writer=new XMLWriter(new FileWriter(fileName),format);
                wr
    iter.write(doc);
                writer.flush();
               //
                isOk=true;
            }
    catch(Exception e){
                e.printStackTrace();
            }
           
    return isOk;
        }

       
    publicboolean modifigXML(String oldFileName,String newFileName){
           
    boolean isOk=false;
           
    try{
                SAXReader reader
    =new SAXReader();//創建SAX閱讀器
                Document doc= reader.read(new File(oldFileName));//將所有文件內容讀取生存Document對象
                /**修改內容之一: 如果student節點中value屬性的內容為god,則修改成king
                 *因為做人不能太囂張
                
    */
                List list
    = doc.selectNodes("/students/student/@value");//搜索出所有位于students節點下的student節點中的value屬性位置放入集合中
                Iterator iter= list.iterator();//加載迭代器
               
    //迭代集合
                while(iter.hasNext()){
                    Attribute attr
    = (Attribute)iter.next();
                   
    if(attr.getValue().equals("god"))//比對值是否相等
                        attr.setValue("king");//設置值
                }

                list
    = doc.selectNodes("/students/team");//搜索出所有位于students節點下team節點位置放入集合中
                iter= list.iterator();//an style="COLOR: #008000">加載迭代器
                //迭代集合
                if(iter.hasNext()){
                    Element team
    = (Element)iter.next();
                    team.setText(
    "05084A");//設置值
                    Element teacher= team.addElement("teacher");//添加節點
                    teacher.setText("godfather");//為新的節點設置值
                    teacher.addAttribute("skill","programme");//為新的節點添加屬性
                }
               
    /**修改內容之三: 若age內容為17,則刪除該節點
                 *未成年人需要被保護...
                
    */
                list
    = doc.selectNodes("/students/student");//搜索出所有位于students節點下的student節點位置放入集合中
                iter= list.iterator();//加載迭代器
               
    //迭代集合
                while(iter.hasNext()){
                    Element elem
    = (Element)iter.next();
                    Iterator iterElem
    = elem.elementIterator("age");//將該節點下所有的age節點生成一個迭代器
                   
    //迭代集合
                    if(iterElem.hasNext()){
                        Element remTitle
    = (Element)iterElem.next();
                       
    if(remTitle.getText().equals("17"))000">//對比值
                            elem.remove(remTitle);//移除該節點
                    }
                }
               
    //將doc中的內容寫入文件中
                OutputFormat format= OutputFormat.createPrettyPrint();//設置格式
                format.setEncoding("GBK");//必要,否則無法解析中文
                
    //輸出為文件,以上操作只是在內存中修改,需要保存為文件來確認修改
                XMLWriter writer=new XMLWriter(new FileWriter(newFileName),format);
                writer.write(doc);
                writer.flush();
                isOk
    =true;
            }
    catch(Exception e){
                e.printStackTrace();
            }
           
    return isOk;
        }
       
    /**
         *the method readXML
        
    */
       
    publicvoid readXML(String fileName){
           
    try{
                File file
    =new File(fileName);//創建文件對象
                SAXReader reader=new SAXReader();//創建SAX閱讀器
                Document doc= reader.read(file);//讀取內容生成Document對象
                Element root= doc.getRootElement();//取得根節點
                search(root);//開始遍歷
            }catch(Exception e){
                e.printStackTrace();
            }
        }
       
       
    //遞歸遍歷
        privatevoid search(Element root) {
      Iterator it_element= root.elementIterator();//將根節點下包含的元素組織成一個迭代器
           
    //迭代
            while( it_element.hasNext()) {
                Element element
    = (Element)it_element.next();
               
    if(!element.getText().equals(""))
                {
                    System.out.println(element.getName()
    +"節點的值是"+element.getText());
                }
               
    else
                {
                    System.out.println(element.getName()
    +"節點");
                }
                Iterator it_attr
    = element.attributeIterator();
               
    while( it_attr.hasNext()) {
                    Attribute attr
    = (Attribute)it_attr.next();
                   
    if(attr!=null)
                    {
                        System.out.println(element.getName()
    +"節點的屬性"+attr.getName()+"的值是"+ attr.getValue());
                    }
                }
                search(element);
    //遞歸調用
            }
        }
       
    /**
         *the method main
        
    */
       
    publicstaticvoid main(String[] args){
           
    long start= System.currentTimeMillis();//開始計時
            Dom4jDemo dom4jDemo=new Dom4jDemo();
            String fileName
    ="dom4jDemo.xml";
            String newFileName
    #000000">="new_dom4jDemo.xml";
            System.out.println(fileName
    +"正在創建中...");
           
    boolean isOk_create= dom4jDemo.createXML(fileName);
           
    if(isOk_create) System.out.println(fileName+"創建成功!");
           
    else System.out.println("創建失敗!請檢查后重新再試!");
           
            System.out.println(
    "正在更新中...");
           
    boolean isOk_modi= dom4jDemo.modifigXML(fileName, newFileName);
           
    if(isOk_modi) System.out.println("恭喜,更新完成!");
           
    //
            System.out.println("正在讀取文件"+fileName+" ...");
            System.out.println(
    "------------------------------------------------");
            dom4jDemo.readXML(fileName);
            System.out.println(
    "------------------------------------------------");
            System.out.println(fileName
    +"讀取成功!");
            System.out.println(
    "正在讀取文件"+newFileName+" ...");
            System.out.println(
    "------------------------------------------------");
            dom4jDemo.readXML(newFileName);
            System.out.println(
    "------------------------------------------------");
            System.out.println(fileName
    +"讀取成功!");
            System.out.println(
    "一共耗時:"+(System.currentTimeMillis()-start)+"毫秒!");
        }
    }

    posted on 2009-06-19 15:19 找個美女做老婆 閱讀(219) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    本blog已經搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 野花香高清在线观看视频播放免费| 亚洲乳大丰满中文字幕| 亚洲美女免费视频| 久久久亚洲AV波多野结衣| 免费无码作爱视频| 亚洲自偷自偷偷色无码中文| 美女视频黄视大全视频免费的| 97人妻精品全国免费视频 | 久久久久久国产精品免费免费 | 中出五十路免费视频| av免费不卡国产观看| 亚洲六月丁香六月婷婷蜜芽| 最好看最新的中文字幕免费| 亚洲国产精品尤物yw在线| 国产亚洲精品成人久久网站| 一本无码人妻在中文字幕免费| 亚洲桃色AV无码| 无码av免费网站| 亚洲国产精品成人久久蜜臀 | 曰批免费视频播放免费| ww在线观视频免费观看| 狠狠色香婷婷久久亚洲精品| 久久免费香蕉视频| 日本免费一区二区三区最新| 国产成人+综合亚洲+天堂| 国产a v无码专区亚洲av| 久久久久亚洲精品无码网址色欲 | 亚洲综合视频在线| 特级无码毛片免费视频| 亚洲精品偷拍视频免费观看 | 亚洲人成综合网站7777香蕉| 午夜视频免费在线观看| 亚洲免费黄色网址| 亚洲男人天堂2020| 67194成手机免费观看| 亚洲国产精品无码久久| 亚洲乱码一区二区三区在线观看 | 在线观看免费a∨网站| 一本大道一卡二大卡三卡免费| 国产国产人免费人成免费视频 | 免费网站看av片|