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

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

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

    隨筆-204  評論-90  文章-8  trackbacks-0
    代碼如下:
    package?com.willpower.parsexml;

    import?java.io.File;
    import?java.io.FileWriter;
    import?java.io.IOException;
    import?java.util.Iterator;
    import?java.util.List;

    import?org.dom4j.Attribute;
    import?org.dom4j.Document;
    import?org.dom4j.DocumentException;
    import?org.dom4j.DocumentHelper;
    import?org.dom4j.Element;
    import?org.dom4j.io.OutputFormat;
    import?org.dom4j.io.SAXReader;
    import?org.dom4j.io.XMLWriter;

    public?class?ParseXml?{

    ????
    /**
    ?????*?創建XML文件
    ?????*?
    @author?cnyqiao@hotmail.com
    ?????*?
    @param?fileName
    ?????*?@date?Jul?10,?2006?3:34:58?PM
    ?????*?
    @return?rtn?true?or?false
    ?????
    */

    ????
    public?boolean?createXMLFile(String?fileName)?{
    ????????
    boolean?rtn?=?false;
    ????????
    //?使用DocumentHelper.createDocument方法建立一個文檔實例
    ????????Document?document?=?DocumentHelper.createDocument();
    ????????
    //?使用addElement方法方法創建根元素
    ????????Element?catalogElement?=?document.addElement("catalog");
    ????????
    //?使用addComment方法方法向catalog元素添加注釋
    ????????catalogElement.addComment("An?XML?cataog");
    ????????
    //?使用addProcessInstruction向catalog元素增加處理指令
    ????????catalogElement.addProcessingInstruction("target",?"text");

    ????????
    //?使用addElement方法向catalog元素添加journal子元素
    ????????Element?journalElement?=?catalogElement.addElement("journal");
    ????????
    //?使用addAttribute方法向journal元素添加title和publisher屬性
    ????????journalElement.addAttribute("title",?"XML?Zone");
    ????????journalElement.addAttribute(
    "publisher",?"Willpower?Co");

    ????????
    //?使用addElement方法向journal元素添加article子元素
    ????????Element?articleElement?=?journalElement.addElement("article");
    ????????
    //?使用addAttribute方法向article元素添加level和date屬性
    ????????articleElement.addAttribute("level",?"Intermediate");
    ????????articleElement.addAttribute(
    "date",?"July-2006");

    ????????
    //?使用addElement方法向article元素添加title子元素
    ????????Element?titleElement?=?articleElement.addElement("title");
    ????????
    //?使用setText方法設置title子元素的值
    ????????titleElement.setText("Dom4j?Create?XML?Schema");

    ????????
    //?使用addElement方法向article元素添加authorElement子元素
    ????????Element?authorElement?=?articleElement.addElement("author");

    ????????
    //?使用addElement方法向author元素添加firstName子元素
    ????????Element?firstName?=?authorElement.addElement("fistname");
    ????????
    //?使用setText方法設置firstName子元素的值
    ????????firstName.setText("Yi");

    ????????
    //?使用addElement方法向author元素添加lastname子元素
    ????????Element?lastName?=?authorElement.addElement("lastname");
    ????????
    //?使用setText方法設置lastName子元素的值
    ????????lastName.setText("Qiao");

    ????????XMLWriter?output;
    ????????
    //輸出格式化
    ????????OutputFormat?format?=?OutputFormat.createPrettyPrint();
    ????????
    try?{
    ????????????output?
    =?new?XMLWriter(new?FileWriter(fileName),?format);
    ????????????output.write(document);
    ????????????output.close();
    ????????????rtn?
    =?true;
    ????????}
    ?catch?(IOException?e)?{
    ????????????e.printStackTrace();
    ????????}


    ????????
    return?rtn;
    ????}


    ????
    /**
    ?????*?修改XML文件
    ?????*?
    @author?cnyqiao@hotmail.com
    ?????*?
    @param?fileName
    ?????*?
    @param?newFileName
    ?????*?@date?Jul?10,?2006?4:03:33?PM
    ?????*?
    @return
    ?????
    */

    ????
    public?boolean?modiXMLFile(String?fileName,?String?newFileName)?{
    ????????
    ????????
    boolean?rtn?=?false;
    ????????
    ????????SAXReader?reader?
    =?new?SAXReader();
    ????????
    try?{
    ????????????Document?document?
    =?reader.read(new?File(fileName));
    ????????????
    //用xpath查找對象
    ????????????List?list?=?document.selectNodes("/catalog/journal/@title");
    ????????????Iterator?itr?
    =?list.iterator();
    ????????????
    while(itr.hasNext())?{
    ????????????????Attribute?attribute?
    =?(Attribute)itr.next();
    ????????????????
    if(attribute.getValue().equals("XML?Zone"))?{
    ????????????????????attribute.setText(
    "Modi?XML");
    ????????????????}

    ????????????}

    ????????????
    //在journal元素中增加date元素
    ????????????list?=?document.selectNodes("/catalog/journal");
    ????????????itr?
    =?list.iterator();
    ????????????
    if(itr.hasNext())?{
    ????????????????Element?journalElement?
    =?(Element)itr.next();
    ????????????????Element?dateElement?
    =?journalElement.addElement("date");
    ????????????????dateElement.setText(
    "2006-07-10");
    ????????????????dateElement.addAttribute(
    "type",?"Gregorian?calendar");
    ????????????}

    ????????????
    //刪除title接點
    ????????????list?=?document.selectNodes("/catalog/journal/article");
    ????????????itr?
    =?list.iterator();
    ????????????
    while(itr.hasNext())?{
    ????????????????Element?articleElement?
    =?(Element)itr.next();
    ????????????????Iterator?iter?
    =?articleElement.elementIterator("title");
    ????????????????
    while(iter.hasNext())?{
    ????????????????????Element?titleElement?
    =?(Element)iter.next();
    ????????????????????
    if(titleElement.getText().equals("Dom4j?Create?XML?Schema"))?{
    ????????????????????????articleElement.remove(titleElement);
    ????????????????????}

    ????????????????}

    ????????????}

    ????????????XMLWriter?output;
    ????????????OutputFormat?format?
    =?OutputFormat.createPrettyPrint();
    ????????????
    try?{
    ????????????????output?
    =?new?XMLWriter(new?FileWriter(newFileName),?format);
    ????????????????output.write(document);
    ????????????????output.close();
    ????????????????rtn?
    =?true;
    ????????????}
    ?catch?(IOException?e)?{
    ????????????????e.printStackTrace();
    ????????????}

    ????????????
    ????????????
    ????????}
    ?catch?(DocumentException?e)?{????????????
    ????????????e.printStackTrace();
    ????????}

    ????????
    ????????
    return?rtn;
    ????????
    ????}

    ????
    /**
    ?????*?
    @param?args
    ?????
    */

    ????
    public?static?void?main(String[]?args)?{
    ????????
    ????????ParseXml?parseXml?
    =?new?ParseXml();
    ????????String?fileName?
    =?"d:\\dom4j.xml";
    ????????String?newFileName?
    =?"d:\\modi.xml";
    ????????
    if(parseXml.createXMLFile(fileName))?{
    ????????????System.out.println(
    "Create?XML?File?Success");
    ????????}

    ????????
    ????????
    if(parseXml.modiXMLFile(fileName,?newFileName))?{
    ????????????System.out.println(
    "Modify?XML?File?Success");
    ????????}


    ????}


    }


    在修改XML時,需要用到jaxen-1.1-beta-6.jar,這里http://sourceforge.net/project/showfiles.php?group_id=16035&package_id=14121&release_id=328664下載,記住下那個zip包啊,這個包里的lib下有上面提到的那個文件,放在classpath下即可
    不然會報ClassNotFound異常
    posted on 2006-07-10 17:51 一凡 閱讀(10970) 評論(3)  編輯  收藏 所屬分類: XML

    評論:
    # re: 用DOM4J創建及修改XML文件 2008-11-17 16:26 | yd00
    很好!謝謝,正好用得著,可以轉貼么?  回復  更多評論
      
    # re: 用DOM4J創建及修改XML文件 2008-11-17 16:36 | willpower88
    可以,隨便轉
      回復  更多評論
      
    # re: 用DOM4J創建及修改XML文件 2016-03-17 16:24 |
    打  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲欧洲日产国产综合网| 亚洲国产午夜中文字幕精品黄网站| 亚洲国产日韩在线视频| 一区二区三区免费在线视频| 国产成人无码免费视频97| 亚洲高清国产拍精品熟女| 国产国产人免费人成免费视频| 亚洲av第一网站久章草| 国产免费69成人精品视频| 男男gay做爽爽免费视频| 亚洲精品无码专区久久同性男| 免费的黄网站男人的天堂| 亚洲综合精品网站在线观看| 在线毛片片免费观看| 亚洲黄色免费电影| 成熟女人牲交片免费观看视频 | 久久亚洲美女精品国产精品 | 久久精品熟女亚洲av麻豆 | 国产精品视频免费一区二区| 亚洲av无码成人精品区一本二本 | 一级全免费视频播放| 亚洲精品乱码久久久久久自慰| 日本免费中文视频| 亚洲精品亚洲人成在线播放| 日韩免费观看一级毛片看看| 成人免费ā片在线观看| 久久久久亚洲AV无码永不| 97无码免费人妻超级碰碰碰碰 | 久久国产精品免费视频| 亚洲一卡二卡三卡| 免费在线一级毛片| 黄网站免费在线观看| 亚洲一卡2卡三卡4卡无卡下载| 免费a在线观看播放| 免费网站看av片| 亚洲爆乳AAA无码专区| 亚洲性猛交XXXX| 成人免费看片又大又黄| 国产无遮挡又黄又爽免费网站| 亚洲国产精品综合福利专区| 亚洲第一永久AV网站久久精品男人的天堂AV|