<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 -----本博客已經(jīng)搬家了,新的地址是 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節(jié)點*/
            Element student
    = students.addElement("student");//加入第一個student節(jié)點
            student.addAttribute("value","god");//加入value屬性和值
            Element name= student.addElement("name");//加入name節(jié)點
            name.setText("finina");//為name設(shè)置值
            Element age=student.addElement("age");//加入age節(jié)點
            age.setText("25");//
    為age設(shè)置值
            Element sex=student.addElement("sex");//加入sex節(jié)點
            sex.setText("male");//為sex設(shè)置值
            /**加入第二個student節(jié)點*/
            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節(jié)點*/
            Element team
    =students.addElement("team");
            team.addText(
    "05093A");
           
    /**
             *將doc中的內(nèi)容寫入xml文件中
             *
    */
           
    try{
                OutputFormat format
    = OutputFormat.createPrettyPrint();//設(shè)置格式
                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();//創(chuàng)建SAX閱讀器
                Document doc= reader.read(new File(oldFileName));//將所有文件內(nèi)容讀取生存Document對象
                /**修改內(nèi)容之一: 如果student節(jié)點中value屬性的內(nèi)容為god,則修改成king
                 *因為做人不能太囂張
                
    */
                List list
    = doc.selectNodes("/students/student/@value");//搜索出所有位于students節(jié)點下的student節(jié)點中的value屬性位置放入集合中
                Iterator iter= list.iterator();//加載迭代器
               
    //迭代集合
                while(iter.hasNext()){
                    Attribute attr
    = (Attribute)iter.next();
                   
    if(attr.getValue().equals("god"))//比對值是否相等
                        attr.setValue("king");//設(shè)置值
                }

                list
    = doc.selectNodes("/students/team");//搜索出所有位于students節(jié)點下team節(jié)點位置放入集合中
                iter= list.iterator();//an style="COLOR: #008000">加載迭代器
                //迭代集合
                if(iter.hasNext()){
                    Element team
    = (Element)iter.next();
                    team.setText(
    "05084A");//設(shè)置值
                    Element teacher= team.addElement("teacher");//添加節(jié)點
                    teacher.setText("godfather");//為新的節(jié)點設(shè)置值
                    teacher.addAttribute("skill","programme");//為新的節(jié)點添加屬性
                }
               
    /**修改內(nèi)容之三: 若age內(nèi)容為17,則刪除該節(jié)點
                 *未成年人需要被保護...
                
    */
                list
    = doc.selectNodes("/students/student");//搜索出所有位于students節(jié)點下的student節(jié)點位置放入集合中
                iter= list.iterator();//加載迭代器
               
    //迭代集合
                while(iter.hasNext()){
                    Element elem
    = (Element)iter.next();
                    Iterator iterElem
    = elem.elementIterator("age");//將該節(jié)點下所有的age節(jié)點生成一個迭代器
                   
    //迭代集合
                    if(iterElem.hasNext()){
                        Element remTitle
    = (Element)iterElem.next();
                       
    if(remTitle.getText().equals("17"))000">//對比值
                            elem.remove(remTitle);//移除該節(jié)點
                    }
                }
               
    //將doc中的內(nèi)容寫入文件中
                OutputFormat format= OutputFormat.createPrettyPrint();//設(shè)置格式
                format.setEncoding("GBK");//必要,否則無法解析中文
                
    //輸出為文件,以上操作只是在內(nèi)存中修改,需要保存為文件來確認修改
                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);//創(chuàng)建文件對象
                SAXReader reader=new SAXReader();//創(chuàng)建SAX閱讀器
                Document doc= reader.read(file);//讀取內(nèi)容生成Document對象
                Element root= doc.getRootElement();//取得根節(jié)點
                search(root);//開始遍歷
            }catch(Exception e){
                e.printStackTrace();
            }
        }
       
       
    //遞歸遍歷
        privatevoid search(Element root) {
      Iterator it_element= root.elementIterator();//將根節(jié)點下包含的元素組織成一個迭代器
           
    //迭代
            while( it_element.hasNext()) {
                Element element
    = (Element)it_element.next();
               
    if(!element.getText().equals(""))
                {
                    System.out.println(element.getName()
    +"節(jié)點的值是"+element.getText());
                }
               
    else
                {
                    System.out.println(element.getName()
    +"節(jié)點");
                }
                Iterator it_attr
    = element.attributeIterator();
               
    while( it_attr.hasNext()) {
                    Attribute attr
    = (Attribute)it_attr.next();
                   
    if(attr!=null)
                    {
                        System.out.println(element.getName()
    +"節(jié)點的屬性"+attr.getName()+"的值是"+ attr.getValue());
                    }
                }
                search(element);
    //遞歸調(diào)用
            }
        }
       
    /**
         *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
    +"正在創(chuàng)建中...");
           
    boolean isOk_create= dom4jDemo.createXML(fileName);
           
    if(isOk_create) System.out.println(fileName+"創(chuàng)建成功!");
           
    else System.out.println("創(chuàng)建失敗!請檢查后重新再試!");
           
            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 找個美女做老婆 閱讀(211) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    公告

    本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久久久久久久免费精品| 毛片无码免费无码播放| 怡红院亚洲怡红院首页| 久久永久免费人妻精品| 亚洲精品456人成在线| www亚洲一级视频com| 久久久免费的精品| 亚洲色成人网站WWW永久四虎 | 亚洲国产午夜电影在线入口| 国产色婷婷精品免费视频| 国产精品免费αv视频| 亚洲男人天堂影院| 亚洲欧洲精品成人久久曰影片| 久久免费福利视频| 精品久久久久久亚洲综合网| 国产精品亚洲成在人线| 成人性生交视频免费观看| 两个人www免费高清视频| 亚洲人成色99999在线观看| 亚洲中文字幕无码久久综合网| AA免费观看的1000部电影| 插鸡网站在线播放免费观看| 中文字幕亚洲精品无码| 久久香蕉国产线看观看亚洲片| 日韩中文字幕在线免费观看| 免费国产黄网站在线观看视频| 亚洲精品无码人妻无码| 亚洲视频在线一区| 久久激情亚洲精品无码?V| 夫妻免费无码V看片| 8x8x华人永久免费视频| 性生大片视频免费观看一级| 亚洲女人影院想要爱| 亚洲精品午夜无码专区| 又黄又爽的视频免费看| 国产片AV片永久免费观看| 中文字幕无码毛片免费看| 久久亚洲精品11p| 亚洲永久网址在线观看| 亚洲国产综合人成综合网站00| 亚洲精品无码国产|