參考資料:
Dom4j 使用簡介
作者:冰云 icecloud(AT)sina.com
http://blog.csdn.net/icecloud/archive/2003/12/17/7795.aspx

dom4j API和源碼、例子下載網址:
http://sourceforge.net/project/showfiles.php?group_id=16035
下載dom4j-1.6.1.zip:帶源碼和例子。

一.dom4j解析xml
這部分內容之前已經寫過,作為完整性,僅僅在此列出上次的代碼:
package com.ict.shrd;

//import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Attribute;
import java.util.List;
import java.util.Iterator;

import org.dom4j.dom.DOMDocument;
import org.dom4j.io.XMLWriter;
import java.io.*;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;

public class HjbhTableNameList{
?private String enName="";
?private String cnName="";
?private HashMap map=new HashMap();

?public String getEnName() {
??return enName;
?}
?public HashMap getTableListFromXml(File f){
??try{
???SAXReader reader = new SAXReader();
???Document doc = reader.read(f);
???Element root = doc.getRootElement();
???Element firstChild=root.element("hjbh");
???for (Iterator i = firstChild.elementIterator("tableName"); i.hasNext();) {
????Element foo = (Element) i.next();
????this.enName=foo.attributeValue("enName");
????this.cnName=foo.getText();
????map.put(enName,cnName);
???}
??} catch (Exception e) {
???e.printStackTrace();
?? ?? }
??return map;
?}

?public static void main(String arge[]) {
??File f = new File("E:\\jiangcm\\workspace-forict\\JavaBasis\\xml\\shrd.xml");
??HashMap map=new HashMap();
??HjbhTableNameList tableList=new HjbhTableNameList();
??map=tableList.getTableListFromXml(f);
??Set enNameSet=map.keySet();
??String enName="";
??for (Iterator i = enNameSet.iterator(); i.hasNext();) {
???enName=(String)i.next();
???//System.out.println(enName);
???System.out.println(map.get(enName));
??}
??
? ?
? }
}

二。dom4j生成xml樹:
完整代碼:
package xml;

import org.dom4j.*;
import java.io.*;

public class XmlCreator{
? public void createXML(String fileName) {

???????? Document doc = org.dom4j.DocumentHelper.createDocument();

???????? Element root = doc.addElement("book");

???????? root.addAttribute("name", "我的圖書");

?

???????? Element childTmp;

???????? childTmp = root.addElement("price");

???????? childTmp.setText("21.22");

?

???????? Element writer = root.addElement("author");

???????? writer.setText("李四");

???????? writer.addAttribute("ID", "001");

?

???????? try {
???????????? //注意這里使用的是FileOutputStream,而不是FileWriter,因為涉及到編碼問題
???????????? //詳細見“dom4j編碼問題解決”篇。

???????????? org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(

???????????????????? new FileOutputStream(fileName));

???????????? xmlWriter.write(doc);

???????????? xmlWriter.close();

???????? }

???????? catch (Exception e) {

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

???????? }

???? }
? public static void main(String[] args){
?? XmlCreator xmlCreator=new XmlCreator();
?? xmlCreator.createXML("E:\\jiangcm\\book.xml");
? }
}