[原]通過Dom4j讀寫XML文檔
package com.yy.xml.dom4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
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 User {
private String xmlDocName = "users.xml";
public User() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
User user = new User();
//user.newXML();
user.readXML();
public void newXML(){
* users.xml
Document doc = DocumentHelper.createDocument(); //users.xml
* 根元素 users
doc.setRootElement(users);
* 根元素 users 下的子元素 user
Element user2 = user.createCopy(); //通過對已有元素的拷貝,産生同一進制素的不同實體
users.add(user2); //根元素增加已有的子元素
* 通過 org.dom4j.io.OutputFormat 來設定XML文檔輸出格式
OutputFormat format = OutputFormat.createPrettyPrint(); //設定XML文檔輸出格式
format.setSuppressDeclaration(true);
format.setIndent(true); //設定是否縮進
format.setNewlines(true); //設定是否換行
* 通過 org.dom4j.io.XMLWriter 建立XML文檔(寫)
try {
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(xmlDocName)),format);
xmlWriter.write(users);
xmlWriter.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
}catch (IOException e) {
public void readXML(){
SAXReader saxReader = new SAXReader();
* 先通過 org.dom4j.io.SAXReader 讀入整份XML文檔
Document usersXMLDoc = saxReader.read(new FileInputStream(new File(xmlDocName)));
* 取得XML文檔的各元素及其值
Element users = usersXMLDoc.getRootElement(); //取得XML文檔的根元素
Iterator users_subElements = users.elementIterator(); //以Iterator集合得到根元素下的所有子元素
while(users_subElements.hasNext()){
Element user = (Element)users_subElements.next();
List user_subElements = user.elements(); //以List集合得到 user 下的所有子元素
for(int i=0;i<user_subElements.size();i++){
Element ele = (Element)user_subElements.get(i);
}
System.out.println();
} catch (DocumentException e) {
本文轉自kenty部落格園部落格,原文連結http://www.cnblogs.com/kentyshang/archive/2007/01/16/621398.html如需轉載請自行聯系原作者
kenty