您的位置:首页 > 其它

Use Dom4J to Write XML file

2010-12-06 18:41 453 查看
package com.jadyer.util;

import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

/**
 * Use Dom4J to write a XML file
 * <users>
 *     <!--This is a comment!-->
 *     <user>
 *         <id>1</id>
 *         <name>Jadyer</name>
 *         <age>24</age>
 *         <address>BeiJing</address>
 *     </user>
 *     <user>
 *         <id>2</id>
 *         <name>Moon</name>
 *         <age>23</age>
 *         <address>HaerBin</address>
 *     </user>
 * </users>
 */
public class TestDom4J {
	public static void main(String[] args) throws IOException {
		new TestDom4J().testXMLWrite();
	}

	public void testXMLWrite() throws IOException {
		// Document对象代表整个xml文档
		Document document = DocumentHelper.createDocument();

		// rootElement代表文档根元素
		Element rootElement = document.addElement("users");

		// 增加一个注释
		rootElement.addComment("This is a comment!");

		// 增加一个<user>标签
		Element userElement11 = rootElement.addElement("user");

		// 设定不同的<user>下面的子标签
		Element idElement11 = userElement11.addElement("id");
		Element nameElement11 = userElement11.addElement("name");
		Element ageElement11 = userElement11.addElement("age");
		Element addressElement11 = userElement11.addElement("address");

		// 为各个子标签赋值
		idElement11.setText("1");
		nameElement11.setText("Jadyer");
		ageElement11.setText("24");
		addressElement11.setText("BeiJing");
		
		Element userElement22 = rootElement.addElement("user");
		Element idElement22 = userElement22.addElement("id");
		Element nameElement22 = userElement22.addElement("name");
		Element ageElement22 = userElement22.addElement("age");
		Element addressElement22 = userElement22.addElement("address");
		idElement22.setText("2");
		nameElement22.setText("Moon");
		ageElement22.setText("23");
		addressElement22.setText("HaerBin");

		// 设定输出编码
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("UTF-8");
		
		// 通过org.dom4j.io.XMLWriter进行输出,将生成的XML文件写到D:/testXML.xml中
		XMLWriter writer = new XMLWriter(new FileWriter("D:/testXML.xml"), format);
		writer.write(document);
		
		writer.close();
	}
}
/**********【关于对XML文件的读和写】************************************/
//关于对XML文件的读和写有很多种实现方式,现在用的比较多的就是Dom4J和Jdom
//相对而言,Dom4J在性能和效率上要比Jdom好一些,只是Dom4J比Jdom稍复杂一点
//包括JBoss的一些配置文件的读取,还有Hibernate等用的都是Dom4J
//Jdom的优点是非常简单,在一般情况下用它读取配置文件是没有问题的
//而其它的XML实现,都要比Dom4J和Jdom复杂一些
//特别是SUN的javax.xml包中定义的一套标准,更复杂,特别难用
/**********【Dom4J和Jdom的使用对比】***********************************/
//二者对XML的处理方式几乎完全一样的,只是API有些细小的差别
//对于输出来说,二者都会生成Format对象,然后调用IO输出流
//二者都是使用Document、Element来表示整个XML文档和元素的
//二者在生成代表整个XML文档的Document对象时,略有不同
//Document doc = DocumentHelper.createDocument();  //Dom4J
//Document doc = new Document(rootElement);       //Jdom
//二者在把一个Element增加到已有Element上时,略有不同
//Element e = root.addElement("hello");          //Dom4J
//Element e = new Element("hello"); root.add(e);//Jdom
/*******************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: