国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
DOM4j使用教程
 DOM4j使用教程
  
  

DOM4j是一個(gè)易用的,開(kāi)源的JAVA操作XML的API,寫(xiě)過(guò)一篇4種XML操作API的比較,DOM4j是性能和易用行最佳的。因此做一個(gè)小教程,供初學(xué)者學(xué)習(xí)。

         學(xué)習(xí)DOM4j首先就先來(lái)了解下它主要的包

                DOM4j所有的接口都在org.dom4j這個(gè)包里定義著

               org.dom4j.Attribute : Attribute接口定義了XML文件的屬性

               org.dom4j.Branch  : Branch為能夠包含子節(jié)點(diǎn)的節(jié)點(diǎn)如XML元素和文檔定義了一個(gè)公共行為

               org.dom4j.CDATA  : CDATA定義了XML CDATA區(qū)域

               org.dom4j.CharacterData: CharacterData是一個(gè)標(biāo)識(shí)接口,標(biāo)識(shí)基于字符的節(jié)點(diǎn)。

               org.dom4j.Comment  : Comment定義了XML注釋的行為

               org.dom4j.Document : Docement接口定義了XML文檔

               org.dom4j.Element   : Element定義了XML元素

               org.dom4j.ElementHandler: ElementHandler定義了Element對(duì)象的處理器

               org.dom4j.ElementPath : 被ElementHandler使用,用于取得當(dāng)前正在處理的路徑層次信息

               org.dom4j.Entity     : Entity定義XML entity

               org.dom4j.Node :   Node為所有的dom4j中XML節(jié)點(diǎn)定義了多態(tài)行為

               org.dom4j.NodeFilter :  NodeFilter定義了在dom4j節(jié)點(diǎn)中產(chǎn)生的一個(gè)濾鏡或謂詞的行為

               org.dom4j.ProcessingInstruction : ProcessingInstruction定義XML處理指令

               org.dom4j.Text   : Test定義了XML文本節(jié)點(diǎn)

               org.dom4j.Visitor : Visitor用于實(shí)現(xiàn)Visitor模式

               org.dom4j.XPath : XPath在分析一個(gè)字符串后會(huì)提供一個(gè)XPath表達(dá)式

          下面說(shuō)下主要的實(shí)用方法

          1:  讀取并解析XML文檔:

               讀寫(xiě)XML文檔主要依賴(lài)于org.dom4j.io包,提供了DOMReader和SAXReader兩類(lèi)不同方式,調(diào)用方式一樣。

           // 從文件讀取XML,輸入文件名,返回XML文檔

    public Document read(String fileName) throws MalformedURLException, DocumentException {
      
               SAXReader reader = new SAXReader();
 
             Document document = reader.read(new File(fileName));
 
             return document;
        }
   2:取得ROOT節(jié)點(diǎn)
         如果要讀取一個(gè)XML文件,最重要的就是要讀取ROOT節(jié)點(diǎn)了,一切分析XML都是從ROOT節(jié)點(diǎn)開(kāi)始。
     
    public Element getRootElement(Document doc){
             return doc.getRootElement();
     }
   3:遍歷XML樹(shù),這里有二種方法
      (1): 枚舉
           // 枚舉所有子節(jié)點(diǎn)
    for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
       Element element = (Element) i.next();
       // do something
    }
    // 枚舉名稱(chēng)為foo的節(jié)點(diǎn)
    for ( Iterator i = root.elementIterator(foo); i.hasNext();) {
       Element foo = (Element) i.next();
       // do something
    }
    // 枚舉屬性
    for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
       Attribute attribute = (Attribute) i.next();
       // do something
    }
  (2) :  遞歸
     public void treeWalk() {
       treeWalk(getRootElement());
    }
    public void treeWalk(Element element) {
       for (int i = 0, size = element.nodeCount(); i < size; i++)     {
           Node node = element.node(i);
           if (node instanceof Element) {
              treeWalk((Element) node);
           } else { // do something....
           }
       }
}
  4:字符串與XML的轉(zhuǎn)換
   // XML轉(zhuǎn)字符串
  Document document = ...;
    String text = document.asXML();
  // 字符串轉(zhuǎn)XML
    String text = <person> <name>James</name> </person>;
    Document document = DocumentHelper.parseText(text);
  5. 創(chuàng)建XML
     這里創(chuàng)建一個(gè)XML,沒(méi)有寫(xiě)
    public Document createDocument() {
       Document document = DocumentHelper.createDocument();
       Element root = document.addElement(root);
       Element author1 =
           root
              .addElement(author)
              .addAttribute(name, James)
              .addAttribute(location, UK)
              .addText(James Strachan);
       Element author2 =
           root
              .addElement(author)
              .addAttribute(name, Bob)
              .addAttribute(location, US)
              .addText(Bob McWhirter);
       return document;
    }
   6: XML 文件輸出
   FileWriter out = new FileWriter( foo.xml );
    document.write(out);
  
    DOM4j 的簡(jiǎn)單常用的方法上面總結(jié)了下,大家可以有一個(gè)印象,想要學(xué)的仔細(xì)了就要自己好好研究了,下面有一個(gè)以前寫(xiě)的小程序,實(shí)現(xiàn)了創(chuàng)建和編輯XML文件的功能。
    package com.dom4j.test;
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 NewXML {
 /**
  *
  * 用DOM4J創(chuàng)建一個(gè)XML文件
  * @param args
  */
 
 public boolean newXMl(String fileName){
  
  boolean returnValue=false;
  
  //定義一個(gè)XML文檔
  
  Document docement=DocumentHelper.createDocument();
  
  //設(shè)置XML文檔的元素
  Element rootElement=docement.addElement("DOM4J創(chuàng)建XML文檔");
  
  rootElement.addComment("鏡花水月2007-4-24晚上創(chuàng)建");
  
  Element nameElement=rootElement.addElement("鏡花水月");
  
  nameElement.addAttribute("名字","不告訴你");
  
  Element schoolElement=nameElement.addElement("學(xué)校");
  
  schoolElement.setText("西安翻譯學(xué)院");
  
  Element cityElement=rootElement.addElement("城市");
  
  cityElement.setText("上海");
  
  Element homeElement=cityElement.addElement("住址");
  
  homeElement.setText("徐家匯");
  
  //創(chuàng)建XML文檔
  try {
   
            /** 格式化輸出,類(lèi)型IE瀏覽一樣 */
   
   OutputFormat format = OutputFormat.createPrettyPrint();
   
   /** 指定XML編碼 */
   
   format.setEncoding("GBK");
   
   XMLWriter writer=new XMLWriter(new FileWriter(new File(fileName)),format); 
           
          writer.write(docement);
          
   writer.close();
   
   return returnValue=true;   
   
   
  } catch (IOException e) {
   
   e.printStackTrace();
  }
  
  
  
  return returnValue;
  
 }
 
 /**
  *
  * 用DOM4J修改一個(gè)XML文件
  * @param args
  *
  */
 
 public boolean update(String fileName,String newFileName){
  
  boolean returnValaue=false;
  
  
  
  SAXReader reader=new SAXReader();
  
  try {
   Document docement=reader.read(new File(fileName));
   
   List list=null;
   
   list=docement.selectNodes("/DOM4J創(chuàng)建XML文檔/鏡花水月/@名字");
   
   Iterator it=list.iterator();
   
   while(it.hasNext()){
    Attribute attribute=(Attribute) it.next();
    if(attribute.getValue().equals("不告訴你")){
     attribute.setValue("還是不告訴你");
    }
   }
   
   //將就該寫(xiě)入新的文件
   
   try {
    //轉(zhuǎn)碼
    OutputFormat format=OutputFormat.createPrettyPrint();
    
    format.setEncoding("GBK");
    
    XMLWriter writer=new XMLWriter(new FileWriter(new File(newFileName)),format);
    
    writer.write(docement);
    
    writer.close();
    
    return returnValaue=true;
    
   } catch (IOException e) {
    
    e.printStackTrace();
   }
   
   
  } catch (DocumentException e) {
   
   e.printStackTrace();
  }
  
  return returnValaue;
 }
 public static void main(String[] args) {
  
  NewXML newXml=new NewXML();
  
  String name="newXML.xml";
  
  String newName="UpdateXML.xml";
  
  if(!newXml.newXMl(name)){
   System.out.println("創(chuàng)建出現(xiàn)錯(cuò)誤!");
   return ;
  }else{
   System.out.println("創(chuàng)建XML成功!");
  }
  
  if(!newXml.update(name,newName)){
   System.out.println("修改出現(xiàn)錯(cuò)誤!");
   return;
  }else{
   System.out.println("修改XML成功");
  }
  
 }
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
dom4j讀取某個(gè)元素的某個(gè)屬性
dom4j的一般應(yīng)用 - bicashy - JavaEye技術(shù)網(wǎng)站
在java中使用dom4j解析xml
使用 domj4 API 創(chuàng)建與修改 XML 文檔
DOM4J解析XML文檔、Document對(duì)象、節(jié)點(diǎn)對(duì)象節(jié)點(diǎn)對(duì)象屬性、將文檔寫(xiě)入XML文件
Dom4J解析xml文檔
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服