国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Dom4j 讀寫XML簡介

cartoon / 2415人閱讀

摘要:原文鏈接修改部分過時內容,添加部分示例要使用讀寫文檔需要先下載包官方網站在目前最新包下載地址解開后有兩個包僅操作文檔的話把加入工程就可以了如果需要使用的話還需要加入包以下是相關操作一對象相關讀取文件獲得對象解析形式的文本得到對象主動創

原文鏈接:http://www.blogjava.net/junglesong/archive/2008/02/21/181196.html

修改部分過時內容,添加部分示例.

要使用 dom4j 讀寫 XML 文檔,需要先下載dom4j包,dom4j官方網站在 http://www.dom4j.org/
目前最新dom4j包下載地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip

解開后有兩個包,僅操作XML文檔的話把 dom4j-1.6.1.jar 加入工程就可以了,如果需要使用 XPath 的話還需要加入包 jaxen-1.1.6.jar.

以下是相關操作:

一.Document對象相關

讀取XML文件,獲得document對象.

SAXReader reader = new SAXReader();
Document  document = reader.read(new File("input.xml"));

解析XML形式的文本,得到document對象.

String text = "";
Document document = DocumentHelper.parseText(text);

主動創建document對象.

Document document = DocumentHelper.createDocument();
Element root = document.addElement("members");// 創建根節點

二.節點相關

獲取文檔的根節點.

Element rootElm = document.getRootElement();

取得某節點的單個子節點.

Element memberElm=root.element("member");// "member"是節點名

取得節點的文字

String text=memberElm.getText();

也可以用:

String text=root.elementText("name");//這個是取得根節點下的 name 子節點的文字.

取得某節點下名為"member"的所有字節點并進行遍歷.

List nodes = rootElm.elements("member");

for (Iterator it = nodes.iterator(); it.hasNext();) {
   Element elm = (Element) it.next();
   // do something
}

對某節點下的所有子節點進行遍歷.

for(Iterator it=root.elementIterator();it.hasNext();){
        Element element = (Element) it.next();
        // do something
}

在某節點下添加子節點.

Element ageElm = newMemberElm.addElement("age");

設置節點文字.

ageElm.setText("29");

刪除某節點.

parentElm.remove(childElm);// childElm是待刪除的節點,parentElm是其父節點

三.屬性相關.

取得某節點下的某屬性

    Element root=document.getRootElement();    
    Attribute attribute=root.attribute("size");// 屬性名name

取得屬性的文字

    String text=attribute.getText();

也可以用:

String text2=root.element("name").attributeValue("firstname"); //這個是取得根節點下name    字節點的屬性firstname的值.

遍歷某節點的所有屬性

Element root=document.getRootElement();    
for(Iterator it=root.attributeIterator();it.hasNext();){
        Attribute attribute = (Attribute) it.next();
        String text=attribute.getText();
        System.out.println(text);
    }

示例文檔 demo.xml



    
    

java代碼

SAXReader saxReader = new SAXReader();
Document document = saxReader.read(baseUrl);
// 獲取根節點
Element rootElement = document.getRootElement();
// 獲取指定節點的集合
List configlist = rootElement.selectNodes("config");
for (Element element : configlist) {
    Map map = new HashMap();
    String name = element.attribute("name").getStringValue();
    String value = element.attribute("value").getStringValue();
    map.put(name, value);
    //doSomething   
}    

設置某節點的屬性和文字.

newMemberElm.addAttribute("name", "sitinspring");

設置屬性的文字

Attribute attribute=root.attribute("name");
attribute.setText("sitinspring");

刪除某屬性

Attribute attribute=root.attribute("size");// 屬性名name
root.remove(attribute);

四.將文檔寫入XML文件.

文檔中全為英文,不設置編碼,直接寫入的形式.

XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(document);
writer.close();

文檔中含有中文,設置編碼格式寫入的形式.

OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");    // 指定XML編碼        
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);

writer.write(document);
writer.close();

五.字符串與XML的轉換

將字符串轉化為XML

String text = "sitinspring";
Document document = DocumentHelper.parseText(text);

將文檔或節點的XML轉化為字符串.

SAXReader reader = new SAXReader();
Document  document = reader.read(new File("input.xml"));            
Element root=document.getRootElement();                
String docXmlText=document.asXML();
String rootXmlText=root.asXML();
Element memberElm=root.element("member");
String memberXmlText=memberElm.asXML();

六.使用 XPath 快速找到節點.

讀取的 XML 文檔示例



  MemberManagement
  
  
    PRJ1
    PRJ2
    PRJ3
    PRJ4
  
  
    
      org.eclipse.jdt.core.javabuilder
      
      
    
  
  
    org.eclipse.jdt.core.javanature
  

使用XPath快速找到節點project

public static void main(String[] args){

SAXReader reader = new SAXReader();

try{
  Document  doc = reader.read(new File("sample.xml"));

  List projects=doc.selectNodes("/projectDescription/projects/project"); // 以"/" 開頭

  Iterator it=projects.iterator();

  while(it.hasNext()){
    Element elm=(Element)it.next();       
    System.out.println(elm.getText());
  }
}
catch(Exception ex){
   ex.printStackTrace();
}
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110330.html

相關文章

  • Dom4j 讀寫XML簡介

    摘要:原文鏈接修改部分過時內容,添加部分示例要使用讀寫文檔需要先下載包官方網站在目前最新包下載地址解開后有兩個包僅操作文檔的話把加入工程就可以了如果需要使用的話還需要加入包以下是相關操作一對象相關讀取文件獲得對象解析形式的文本得到對象主動創 原文鏈接:http://www.blogjava.net/junglesong/archive/2008/02/21/181196.html 修改部分...

    megatron 評論0 收藏0
  • 淺析SAX,DOM,JAXP,JDOM與DOM4J之間的關系

    摘要:通過解析器獲取文檔對象后,開發人員可以很方便的對其進行操作,如獲取更元素,獲取一個子元素,增加子元素,移除子元素。它并沒有為解析提供任何新功能,但是它為在獲取與解析器提供了更加直接的途徑。自身不包含解析器,默認使用隨包一起發行的。 showImg(/img/bVDhQE?w=888&h=220); 文章最初發表于我的個人博客非典型性程序猿 眾所周知,SAX與DOM是JAVA中兩大核心X...

    妤鋒シ 評論0 收藏0
  • 淺析SAX,DOM,JAXP,JDOM與DOM4J之間的關系

    摘要:通過解析器獲取文檔對象后,開發人員可以很方便的對其進行操作,如獲取更元素,獲取一個子元素,增加子元素,移除子元素。它并沒有為解析提供任何新功能,但是它為在獲取與解析器提供了更加直接的途徑。自身不包含解析器,默認使用隨包一起發行的。 showImg(https://segmentfault.com/img/bVDhQE?w=888&h=220); 文章最初發表于我的個人博客非典型性程序猿...

    JasinYip 評論0 收藏0
  • XML就是這么簡單

    什么是XML? XML:extensiable markup language 被稱作可擴展標記語言 XML簡單的歷史介紹: gml->sgml->html->xml gml(通用標記語言)–在不同的機器進行通信的數據規范 sgml(標準通用標記語言) html(超文本標記語言) 為什么我們需要使用XML呢? ①我們沒有XML這種語言之前,我們使用的是String作為兩個程序之間的通訊!現在問...

    pf_miles 評論0 收藏0
  • XML就是這么簡單

    什么是XML? XML:extensiable markup language 被稱作可擴展標記語言 XML簡單的歷史介紹: gml->sgml->html->xml gml(通用標記語言)–在不同的機器進行通信的數據規范 sgml(標準通用標記語言) html(超文本標記語言) 為什么我們需要使用XML呢? ①我們沒有XML這種語言之前,我們使用的是String作為兩個程序之間的通訊!現在問...

    yacheng 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<