java xml格式化_使用java将xml格式化

java xml格式化_使用java将xml格式化将生成的xml用ie浏览器打开,就可以见到漂亮的缩进的xmlschema.但是每次都这样也不方便。在java程序中,直接使用jdk的javax.xml.transform.Transformer即可完成。而且如果有节点未被匹配,也能通过错误提示及时发现。先贴代码如下:importjava.io.File;importjava.io.StringReader;importjavax.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.net/160120.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SD/MMC 卡读写模块—SD/MMC 卡的外部物理接口

    SD/MMC 卡读写模块—SD/MMC 卡的外部物理接口转载地址:http://www.8951.com/book/jiao1n21.htmSD/MMC   卡是一种大容量(最大可达4GB)、性价比高、体积小、访问接口简单的存储卡。SD/MMC卡大量应用于数码相机、MP3机、手机、大容量存储设备,作为这些便携式设备的存储载体,它还具有低功耗、非易失性、保存数据无需消耗能量等特点。SD卡接口向下兼容MMC(MutliMediaCard

    2022年6月8日
    46
  • Elasticsearch面试题精选20题[通俗易懂]

    Elasticsearch面试题精选20题[通俗易懂]题目均来源于网络,为个人学习标注并纠错后发布。目录1.ES为什么那么快(ES的索引原理)?Elasticsearch查询速度为什么这么快?2.MongoDB和Elasticsearch区别3.ES的倒排索引是什么?4.Elasticsearch索引数据多了怎么办,如何调优,部署?5.说你们公司ES的集群架构,索引数据大小,分片有多少,以及一些调优手段。6.Elasticsearch是如何实现master选举的?7.详细描述一下Elasticsearch索引文档的过程。

    2022年9月13日
    0
  • 基于GLBP协议的医院网络规划与设计 文档+申请表+任务书+开题报告+中期检查+文献综述+PPT+周进展+网络拓扑及配置

    基于GLBP协议的医院网络规划与设计 文档+申请表+任务书+开题报告+中期检查+文献综述+PPT+周进展+网络拓扑及配置目录基于GLBP协议的医院网络规划与设计摘要HospitalnetworkplanninganddesignbasedonGLBPprotocolAbstract1.基于GLBP协议的医院网络需求分析1.1对用户需求进行分析(1)网络应用需求分析(2)对网络进行安全需求分析(3)对技术需求进行分析1.2主要设计的目标(1)开放性(2)实用性(3)可扩展性(4)先进性(5)可靠性(6)安全性(7)可管理性2.医院网络整体设计2.1医院网络整个架构2.2

    2022年9月27日
    0
  • Centos7下安装Docker(详细安装教程)[通俗易懂]

    一,Docker简介百科说:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。看起来有点雾,用过虚拟机的应该对虚拟化技术有点印象,不知道也没关系,就把它当成轻量级的虚拟机吧(虽然一个是完全虚拟化,一个是操作系统层虚拟化),这个解释到位:ht…

    2022年4月10日
    41
  • DDD中的建模方法有哪些[通俗易懂]

    DDD中的建模方法有哪些[通俗易懂]一、背景在之前的文章中已经介绍了DDD相关的概念模式,DDD相关的业务技术架构,但是我们还没有找到一个核心的抓手去实践DDD。DDD的一个核心本质就是对业务建模,或者领域建模。说的很简单,但是做好确实很难,一个需求过来意淫几个实体对象就差不多解决了。深入看,全局看只在脑海中进行的建模实际上并不一定正确和稳定。因此我们需要找到正确的方法帮助对业务领域进行分析,得到建模结构,共享建模成果。二、四色建模法2.1起源&概念&要素关于四色建模的概念我们可与追溯到90年代,起源于四色原型。四色

    2022年9月2日
    2
  • contextmenu是什么事件_onpropertychange事件

    contextmenu是什么事件_onpropertychange事件用户点击鼠标右键时触发并打开上下文菜单禁用:document.oncontextmenu=function(){   returnfalse;}编辑自定义右键打开菜单document.oncontextmenu=function(){   returnfalse; } document.body.addEventListener(‘mousedown’…

    2022年8月14日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号