天天看点

通过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