隨筆-6  評論-38  文章-40  trackbacks-0

          ?


          // 創(chuàng)建xml
          ? import ?java.io.File;
          import ?java.io.FileWriter;

          import ?org.dom4j.Document;
          import ?org.dom4j.DocumentHelper;
          import ?org.dom4j.Element;
          import ?org.dom4j.io.XMLWriter;

          public ? class ?Creatxml? {

          ??
          /**

          ?????*?建立一個XML文檔,文檔名由輸入屬性決定

          ?????*?
          @param ?filename?需建立的文件名

          ?????*?
          @return ?返回操作結果,?0表失敗,?1表成功

          ?????
          */

          public ?? static ? void ?main(String?str[])
          {
          ??createXMLFile(
          " c:/aaaa " );
          }

          ????
          public ? static ? int ?createXMLFile(String?filename) {

          ???????
          /** ?返回操作結果,?0表失敗,?1表成功? */

          ???????
          int ?returnValue? = ? 0 ;

          ???????
          /** ?建立document對象? */

          ???????Document?document?
          = ?DocumentHelper.createDocument();

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

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

          ???????
          /** ?加入一行注釋? */

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

          ???????
          /** ?加入第一個book節(jié)點? */

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

          ???????
          /** ?加入show屬性內容? */

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

          ???????
          /** ?加入title節(jié)點? */

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

          ???????
          /** ?為title設置內容? */

          ???????titleElement.setText(
          " Dom4j?Tutorials " );

          ???????

          ???????
          /** ?類似的完成后兩個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é)點? */

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

          ???????ownerElement.setText(
          " O'Reilly " );

          ???????

          ???????
          try {

          ???????????
          /** ?將document中的內容寫入文件中? */

          ???????????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

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

          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.Element;
          import ?org.dom4j.io.SAXReader;
          import ?org.dom4j.io.XMLWriter;

          public ? class ?UpdateXml? {

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

          ?
          public ? static ? void ?main(String[]?args)? {
          ??
          // ?TODO?Auto-generated?method?stub
          ???ModiXMLFile( " c:/aaaa " , " c:/bbb.xml " );
          ?}

          ?
          /**

          ?????*?修改XML文件中內容,并另存為一個新文件

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

          ?????*?
          @param ?filename?修改對象文件

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

          ?????*?
          @return ?返回操作結果,?0表失敗,?1表成功

          ?????
          */


          ????
          public ? static ? int ?ModiXMLFile(String?filename,String?newfilename) {

          ???????
          int ?returnValue? = ? 0 ;

          ???????
          try {

          ???????????SAXReader?saxReader?
          = ? new ?SAXReader();?

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

          ???????????
          /** ?修改內容之一:?如果book節(jié)點中show屬性的內容為yes,則修改成no? */

          ???????????
          /** ?先用xpath查找對象? */

          ???????????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 " );

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

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


          ???????????

          ???????????
          /**

          ????????????*?修改內容之二:?把owner項內容改為Tshinghua

          ????????????*?并在owner節(jié)點中加入date節(jié)點,date節(jié)點的內容為2004-09-11,還為date節(jié)點添加一個屬性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 " );

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


          ???????????

          ???????????
          /** ?修改內容之三:?若title內容為Dom4j?Tutorials,則刪除該節(jié)點? */

          ???????????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中的內容寫入文件中? */

          ??????????????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

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

          import ?java.io.File;
          import ?java.io.FileWriter;

          import ?org.dom4j.Document;
          import ?org.dom4j.io. * ;

          public ? class ?OutXml? {

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

          ?
          public ? static ? void ?main(String[]?args)? {
          ??
          // ?TODO?Auto-generated?method?stub
          ??formatXMLFile( " c:/bbb.xml " );
          ?}

          ?
          /**

          ?????*?格式化XML文檔,并解決中文問題

          ?????*?
          @param ?filename

          ?????*?
          @return

          ?????
          */


          ????
          public ? static ? int ?formatXMLFile(String?filename) {

          ???????
          int ?returnValue? = ? 0 ;

          ???????
          try {

          ???????????SAXReader?saxReader?
          = ? new ?SAXReader();?

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

          ???????????XMLWriter?writer?
          = ? null ;

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

          ??????????OutputFormat?format?
          = ?OutputFormat.createPrettyPrint();

          ???????????
          /** ?指定XML編碼? */

          ???????????format.setEncoding(
          " GBK " );

          ???????????writer
          = ? new ?XMLWriter( new ?FileWriter( new ?File(filename)),format);

          ???????????writer.write(document);

          ???????????writer.close();??????

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

          ???????????returnValue?
          = ? 1 ;?????

          ???????}
          catch (Exception?ex) {

          ???????????ex.printStackTrace();

          ???????}


          ???????
          return ?returnValue;

          ????}


          }


          posted on 2006-12-01 11:45 一手的小窩窩 閱讀(1286) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 广州市| 临洮县| 防城港市| 蛟河市| 宝鸡市| 镇原县| 蒙阴县| 贡嘎县| 米泉市| 东山县| 林芝县| 平安县| 甘谷县| 灵丘县| 康平县| 东阿县| 哈尔滨市| 日照市| 蒙阴县| 灵丘县| 勐海县| 仁布县| 东源县| 雅安市| 兴宁市| 全椒县| 阿勒泰市| 灵川县| 汤阴县| 斗六市| 淄博市| 彭阳县| 松阳县| 凤山市| 陈巴尔虎旗| 永济市| 茶陵县| 会泽县| 泾源县| 泽库县| 中西区|