天天看點

通過Dom4j讀寫XML文檔

[原]通過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