關于dom4j的解析

          Posted on 2006-10-06 00:16 開關 閱讀(434) 評論(0)  編輯  收藏 所屬分類: XML

          實際跟jdom 有相似的地方 主要是
          JDOM用SAXBuilder
          DOM4J用SAXReader
          形成doc 然后
          輸出的方式也不太一樣
          jdom用XMLOutput
          生成格式
          然后又xop.setput(doc,os)
          把輸入流和doc當作參數

          dom4j則是
          創建一個 XMLWriter(os,format)
          format是格式
          然后由書寫器書寫(doc)
          writer.writer(doc)


          例如:dom4j的code 為:

          import java.io.File;
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.OutputStream;
          import java.io.UnsupportedEncodingException;
          import java.net.MalformedURLException;
          import java.util.Iterator;
          import java.util.List;

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

          public class parsedom4j {

          ?/**
          ? * @param args
          ? */
          ?public static void main(String[] args) {
          ??// TODO 自動生成方法存根
          ??parsedom4j j=new parsedom4j();
          ??j.delete();
          ??
          ?}
          ?public void update(){
          ?? SAXReader parser=new SAXReader();
          ?? String path="D:/Example10.xml";
          ?? File file=new File(path);
          ???????? try {
          ??? Document doc=parser.read(path);
          ???Element root=doc.getRootElement();
          ???Iterator iter=root.elementIterator();
          ???while(iter.hasNext()){
          ????Element child=(Element)iter.next();
          ????Iterator childchilds=child.elementIterator();
          ????boolean isCorrect=false;
          ????while(childchilds.hasNext()){
          ?????Element childchild=(Element)childchilds.next();
          ?????if(childchild.getName().equalsIgnoreCase("title")&&childchild.getTextTrim().equalsIgnoreCase("b")){
          ?????? isCorrect=true;
          ?????}if(childchild.getName().equalsIgnoreCase("email")&&isCorrect)
          ?????{
          ??????? childchild.setText("西安@163.com");?
          ??????}
          ????}
          ???}
          ???OutputFormat format=new OutputFormat();
          ???format.setEncoding("gb3212");
          ???format.setNewlines(true);
          ???????? OutputStream os=new FileOutputStream(path);
          ???XMLWriter writer=new XMLWriter(os,format);
          ???writer.write(doc);
          ???os.close();
          ???writer.close();
          ???
          ???
          ??} catch (MalformedURLException e) {
          ???// TODO 自動生成 catch 塊
          ???e.printStackTrace();
          ??} catch (Exception e) {
          ???// TODO 自動生成 catch 塊
          ???e.printStackTrace();
          ??}
          ?}
          ?
          ?public void delete(){
          ??Element de=null;
          ? SAXReader reader=new SAXReader();
          ? String path="D:/Example10.xml";
          ? Document doc;
          ?try {
          ??doc = reader.read(path);
          ??Element root=doc.getRootElement();
          ??List children=root.elements();
          ??for(int i=0;i<children.size();i++){
          ???Element child=(Element)children.get(i);
          ???List childchilds=child.elements();
          ???for(int j=0;i<childchilds.size();j++){
          ???Element?e=(Element)childchilds.get(i);
          ???if(e.getName().equalsIgnoreCase("email")){
          ????de=e;
          ????childchilds.remove(j);
          ???}
          ???}
          ??}
          ?} catch (DocumentException e) {
          ??// TODO 自動生成 catch 塊
          ??e.printStackTrace();
          ?}
          ????
          ?
          ???
          ???? ?
          ????
          ??
          ?}

          ???
          ???
          ???
          ?

          ?public parsedom4j() {
          ??super();
          ??// TODO 自動生成構造函數存根
          ?}

          }


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


          網站導航:
           
          主站蜘蛛池模板: 乌兰县| 贵州省| 惠州市| 康乐县| 慈利县| 乐亭县| 邵武市| 平原县| 兴山县| 石屏县| 禄丰县| 眉山市| 老河口市| 临泽县| 南宁市| 永兴县| 栖霞市| 饶河县| 滦平县| 越西县| 耒阳市| 鄂托克旗| 读书| 砚山县| 白玉县| 诸暨市| 都匀市| 佛山市| 昌吉市| 大埔县| 呼图壁县| 上栗县| 江口县| 汉中市| 内丘县| 介休市| 仙游县| 图们市| 莲花县| 松江区| 兴安盟|