java xml格式化_使用java将xml格式化
大家好,又见面了,我是你们的朋友全栈君。
将生成的xml用ie浏览器打开,就可以见到漂亮的缩进的xml schema.
但是每次都这样也不方便。在java程序中,直接使用jdk的javax.xml.transform.Transformer即可完成。
而且如果有节点未被匹配,也能通过错误提示及时发现。
先贴代码如下:
import java.io.File;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
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.xml.sax.InputSource;
public class XmlUtils {
/**
* @param args
*/
public static void main(String[] args) {
SaveXMLWithIndent(“test”,”demo.xml”);
}
public static void SaveXMLWithIndent(String xml,String fileName) {
try {
Document doc = getDocumentFromString(xml);
DOMSource src = new DOMSource(doc);
//StreamResult sr = new StreamResult(System.out);
StreamResult sr = new StreamResult(new File(fileName));
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.INDENT, “yes”);
t.setOutputProperty(“{外链网址已屏蔽}indent-amount”, “2”);
t.setOutputProperty(OutputKeys.METHOD, “xml”);
t.setOutputProperty(OutputKeys.ENCODING, “UTF-8”);
t.transform(src, sr);
}catch(Exception e) {
e.printStackTrace();
}
}
public static Document getDocumentFromString(String xml) throws Exception {
Document doc = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(new InputSource(new StringReader(xml)));
return doc;
}
}
最后效果如下:
test
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160120.html原文链接:https://javaforall.cn
相关文章
- 中级java笔试题_Java中级面试题合集[通俗易懂]
- java %08d_总结Java中String.format()的使用[通俗易懂]
- java使用md5_Java_MD5的使用「建议收藏」
- 说一下java的运行机制_Java运行机制是什么?「建议收藏」
- java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]
- Java学习笔记之二java标识符命名规范详解编程语言
- 使用XML导入MySQL:轻松实现数据迁移(xml数据导入mysql)
- 实现使用Java代码实现MySQL数据库连接(java连接mysql数据库代码)
- 使用Java操作Redis数据库(java中使用redis)
- Java监控MySQL性能:实现数据库运行优化(java监控mysql)
- Linux下配置Java开发环境的指南(linux配置java环境)
- 应用『Java应用程序中Redis缓存的使用』(redis缓存与java)
- Linux下运行Java:一步步踏上学习之路(linux下运行java)
- 存储过程使用Java语言执行Oracle存储过程(java执行oracle)
- 使用MySQL和XML语句进行高效数据处理(mysql xml 语句)
- MySQL和XML表相结合的完美解决方案(mysql xml 表)
- 使用MySQL和XML注释提升数据库设计效率(mysql xml 注释)
- 实现基于Redis的分布式锁Java实现(redis锁java代码)
- Oracle XML节点的魔力开启无尽的编程之路(oracle xml节点)
- Redis中使用Java快速实现自增(redis自增 java)
- Java中四种XML解析技术
- 在java中使用dom4j解析xml(示例代码)