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


    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>
    


  • 相关阅读:
    高阶类型的特征是包含类型构造器、包含类型参量
    类型系统的分类
    类型转化与类型变换
    类型导出模式-类型封装模式-命名空间模式
    xcode 通配搜索
    Swift 命名空间形式扩展的实现
    Swift3命名空间的实现
    函数式编程:上线文、包裹、容器-我们可以将一个值用Context(上下文)包裹起来
    swift 使用计算属性+结构管理内存
    Locations for Public Frameworks
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053419.html
Copyright © 2020-2023  润新知