使用dom4j工具:设置输出格式compactFormat和PrettyPrint(六)

x33g5p2x  于2021-12-28 转载在 其他  
字(1.9k)|赞(0)|评价(0)|浏览(225)
package dom4j_write;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
 * 设置xml文件内容的格式:紧凑型和美观型
 * 
 * 设置xml文件的编码格式:encoding,保持存储格式和声明格式相同
 * 
 * @author mzy
 *
 */
public class Demo02 {
	public static void main(String[] args) throws Exception {
		Document doc = new SAXReader().read(new File("././src/contact.xml"));

		// 创建输出流
		OutputStream outStream = new FileOutputStream("E:/user/eclipse_workStation/XML/src/dom4j_write/target02.xml");

		// 补充1:设置输出的格式
		/*
		 * 为什么要使用两种格式存储xml文件呢?
		 * 考虑文件的大小;
		 * 传输的话,文件越小越好,所以更需要紧凑型的;
		 * 但是考虑阅读的话,则需要更美观的格式;
		 */
		OutputFormat compactFormat = OutputFormat.createCompactFormat(); // 紧凑的格式
		OutputFormat prettyFormat = OutputFormat.createPrettyPrint(); // 漂亮的格式
		
		// 补充2:设置输出的编码格式
		/*
		 * 作用1: 
		 * 		影响了xml的文档声明的encoding:
		 * 		<?xml version="1.0" encoding="UTF-8"?>
		 * 作用2:
		 * 		影响了xml文件内容保存的编码。
		 * 
		 * 保持内容和声明一致。
		 */
		compactFormat.setEncoding("utf-8");
		prettyFormat.setEncoding("gbk");
		
		// 1)创建输出对象
		// XMLWriter writer = new XMLWriter(outStream, compactFormat);
		XMLWriter writer = new XMLWriter(outStream, prettyFormat);
		
		// 2)写出数据
		writer.write(doc);
	}
}

xml结构如下:

<?xml version="1.0" encoding="gbk"?>
<contact-list>
	<contact id="001" name="eric">
		<name>张三</name>
		<gender>男</gender>
		<phone>134001114</phone>
		<email>zhangsan@qq.com</email>
		<address>成都</address>
	</contact>
	<contact id="002">
		<name>李四</name>
		<gender>男</gender>
		<phone>134001115</phone>
		<email>lisi@qq.com</email>
		<address>广州</address>
	</contact>
	<contact id="003">
		<name>王五</name>
		<gender>男</gender>
		<phone>134001116</phone>
		<email>wangwu@qq.com</email>
		<address>上海</address>
	</contact>
</contact-list>

相关文章