關于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 自動生成構造函數存根
          ?}

          }


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


          網站導航:
           
          主站蜘蛛池模板: 太和县| 工布江达县| 临清市| 通辽市| 衡水市| 灵川县| 台中县| 荣昌县| 湟中县| 张家港市| 海南省| 大城县| 抚宁县| 任丘市| 莆田市| 句容市| 鄂伦春自治旗| 泸州市| 桂东县| 常山县| 长丰县| 来安县| 加查县| 红原县| 颍上县| 玛沁县| 日照市| 通辽市| 溆浦县| 五家渠市| 大新县| 吉木乃县| 四会市| 乡宁县| 蓝山县| 楚雄市| 油尖旺区| 兰溪市| 剑阁县| 綦江县| 台东市|