博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DOM方式保存xml为UTF-8格式
阅读量:6152 次
发布时间:2019-06-21

本文共 2004 字,大约阅读时间需要 6 分钟。

hot3.png

代码如下:

import java.io.FileOutputStream;import java.util.Properties;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;public class Test {	public static void main(String[] args) {		String path = "D:/demo.xml";		try {			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 			DocumentBuilder builder = factory.newDocumentBuilder(); 			Document document = builder.newDocument();						Element root = document.createElement("subject"); 			root.setAttribute("version", "2.3");			root.setAttribute("type", "0");			document.appendChild(root); 						Element options = document.createElement("options"); 			Element option_lockdbtable = document.createElement("option"); 			option_lockdbtable.setAttribute("name", "lockdbtable");			option_lockdbtable.setAttribute("value", "中文测试");			options.appendChild(option_lockdbtable); 			root.appendChild(options); 						Transformer tf = TransformerFactory.newInstance().newTransformer();		    Properties properties = tf.getOutputProperties();			properties.setProperty(OutputKeys.ENCODING, "UTF-8");//设置编码方式		    properties.setProperty(OutputKeys.INDENT, "yes");		    tf.setOutputProperties(properties);		    		    /* 	以下这种方式设置无效:		     *  Transformer transformer = tf.newTransformer();			 *	transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); 			 *	transformer.setOutputProperty(OutputKeys.INDENT, "yes");		     */		    		    Source xmlSource = new DOMSource(document);		    Result result = new StreamResult(new FileOutputStream(path));		    tf.transform(xmlSource, result);		} catch (Exception e) {			e.printStackTrace();		}	}}

转载于:https://my.oschina.net/liweigov/blog/115603

你可能感兴趣的文章
Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
查看>>
Olap学习笔记
查看>>
Codeforces Round #431 (Div. 1)
查看>>
如何进行数组去重
查看>>
将标题空格替换为 '_' , 并自动复制到剪切板上
查看>>
List Collections sort
查看>>
Mysql -- You can't specify target table 'address' for update in FROM clause
查看>>
使用局部标准差实现图像的局部对比度增强算法。
查看>>
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>