package com.holen.dom4j;
import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author Holen Chen
*/
public class Dom4jDemo {
public Dom4jDemo() {
}
/**
* 建立一个 XML 文档 , 文档名由输入参数决定
* @param filename 需建立的文件名
* @return 返回操作结果 , 0 表失败 , 1 表成功
*/
public int createXMLFile(String filename){
/** 返回操作结果 , 0 表失败 , 1 表成功 */
int returnValue = 0;
/** 建立 document 对象 */
Document document = DocumentHelper.createDocument();
/** 建立 XML 文档的根 books */
Element booksElement = document.addElement( "books" );
/** 加入一行注释 */
booksElement.addComment( "This is a test for dom4j, holen, 2004.9.11" );
/** 加入第一个 book 节点 */
Element bookElement = booksElement.addElement( "book" );
/** 加入 show 参数内容 */
bookElement.addAttribute( "show" , "yes" );
/** 加入 title 节点 */
Element titleElement = bookElement.addElement( "title" );
/** 为 title 设置内容 */
titleElement.setText( "Dom4j Tutorials" );
/** 类似的完成后两个 book */
bookElement = booksElement.addElement( "book" );
bookElement.addAttribute( "show" , "yes" );
titleElement = bookElement.addElement( "title" );
titleElement.setText( "Lucene Studing" );
bookElement = booksElement.addElement( "book" );
bookElement.addAttribute( "show" , "no" );
titleElement = bookElement.addElement( "title" );
titleElement.setText( "Lucene in Action" );
/** 加入 owner 节点 */
Element ownerElement = booksElement.addElement( "owner" );
ownerElement.setText( "O'Reilly" );
try {
/** 将 document 中的内容写入文件中 */
XMLWriter writer = new XMLWriter( new FileWriter( new File(filename)));
writer.write(document);
writer.close();
/** 执行成功 , 需返回 1 */
returnValue = 1;
} catch (Exception ex){
ex.printStackTrace();
}
return returnValue;
}
/**
* 修改 XML 文件中内容 , 并另存为一个新文件
* 重点掌握 dom4j 中如何添加节点 , 修改节点 , 删除节点
*