當前位置:編程學習大全網 - 源碼下載 - java dom4j怎麽實現append方法

java dom4j怎麽實現append方法

DOM4J生成和解析XML文檔

DOM4J 是壹個非常非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是壹個開放源代碼的軟件。如今妳可以看到越來越多的 Java 軟件都在使用 DOM4J 來讀寫 XML,特別值得壹提的是連 Sun 的 JAXM 也在用 DOM4J。

假設我們XML的內容和結構如下(demo.xml):

<?xml version="1.0" encoding="UTF-8"?>

<employees>

<!--An XML Note -->

<?target text?>

<employee id="lo" name="lele">

<sex>m</sex>

<age>23</age>

</employee>

<employee id="ve" name="fox">

<sex>f</sex>

<age>22</age>

</employee>

</employees>

導入jar包:dom4j-1.6.1.jar

package cn.main.dom4j;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

/**

*

* dom4j生成與解析XML文檔

*

* @author wanglp 2012-2-23

*/

public class Dom4jDemo {

/**

* 利用dom4j進行xml文檔的寫入操作

*/

public void createXml(File file) {

// XML 聲明 <?xml version="1.0" encoding="UTF-8"?> 自動添加到 XML文檔中

// 使用DocumentHelper類創建文檔實例(生成 XML文檔節點的 dom4j API工廠類)

Document document = DocumentHelper.createDocument();

// 使用addElement()方法創建根元素 employees(用於向 XML 文檔中增加元素)

Element root = document.addElement("employees");

// 在根元素中使用 addComment()方法添加註釋"An XML Note"

root.addComment("An XML Note");

// 在根元素中使用 addProcessingInstruction()方法增加壹個處理指令

root.addProcessingInstruction("target", "text");

// 在根元素中使用 addElement()方法增加employee元素。

Element empElem = root.addElement("employee");

// 使用 addAttribute()方法向employee元素添加id和name屬性

empElem.addAttribute("id", "0001");

empElem.addAttribute("name", "wanglp");

// 向employee元素中添加sex元素

Element sexElem = empElem.addElement("sex");

// 使用setText()方法設置sex元素的文本

sexElem.setText("m");

// 在employee元素中增加age元素 並設置該元素的文本。

Element ageElem = empElem.addElement("age");

ageElem.setText("25");

// 在根元素中使用 addElement()方法增加employee元素。

Element emp2Elem = root.addElement("employee");

// 使用 addAttribute()方法向employee元素添加id和name屬性

emp2Elem.addAttribute("id", "0002");

emp2Elem.addAttribute("name", "fox");

// 向employee元素中添加sex元素

Element sex2Elem = emp2Elem.addElement("sex");

// 使用setText()方法設置sex元素的文本

sex2Elem.setText("f");

// 在employee元素中增加age元素 並設置該元素的文本。

Element age2Elem = emp2Elem.addElement("age");

age2Elem.setText("24");

// 可以使用 addDocType()方法添加文檔類型說明。

// document.addDocType("employees", null, "file://E:/Dtds/dom4j.dtd");

// 這樣就向 XML 文檔中增加文檔類型說明:

// <!DOCTYPE employees SYSTEM "file://E:/Dtds/dom4j.dtd">

// 如果文檔要使用文檔類型定義(DTD)文檔驗證則必須有 Doctype。

try {

XMLWriter output = new XMLWriter(new FileWriter(file));

output.write(document);

output.close();

} catch (IOException e) {

System.out.println(e.getMessage());

}

}

/**

* 利用dom4j進行xml文檔的讀取操作

*/

public void parserXml(File file) {

Document document = null;

// 使用 SAXReader 解析 XML 文檔 catalog.xml:

SAXReader saxReader = new SAXReader();

try {

document = saxReader.read(file);

} catch (DocumentException e) {

e.printStackTrace();

}

// 將字符串轉為XML

// document = DocumentHelper.parseText(fileString);

// 獲取根節點

Element root = document.getRootElement();

// 打印節點名稱

System.out.println("<" + root.getName() + ">");

// 獲取根節點下的子節點遍歷

Iterator<?> iter = root.elementIterator("employee");

// 遍歷employee節點

while (iter.hasNext()) {

// 獲取當前子節點

Element empEle = (Element) iter.next();

System.out.println("<" + empEle.getName() + ">");

// 獲取當前子節點的屬性遍歷

Iterator<?> attrList = empEle.attributeIterator();

while (attrList.hasNext()) {

Attribute attr = (Attribute) attrList.next();

System.out.println(attr.getName() + "=" + attr.getValue());

}

// 遍歷employee節點下所有子節點

Iterator<?> eleIte = empEle.elementIterator();

while (eleIte.hasNext()) {

Element ele = (Element) eleIte.next();

System.out.println("<" + ele.getName() + ">" + ele.getTextTrim());

}

// 獲取employee節點下的子節點sex值

// String sex = empEle.elementTextTrim("sex");

// System.out.println("sex:" + sex);

}

System.out.println("</" + root.getName() + ">");

}

public static void main(String[] args) {

Dom4jDemo dom4j = new Dom4jDemo();

File file = new File("e:/dom4j.xml");

// dom4j.createXml(file);

dom4j.parserXml(file);

}

}

  • 上一篇:casio5146手表GA-110RG怎麽調時間 然後調時鐘 (易懂) 和怎麽計時 調鬧鐘 等
  • 下一篇:Flutter PDF閱讀,可顯示頁數,源碼
  • copyright 2024編程學習大全網