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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • EasyUI初体验–右键弹框

    EasyUI初体验–右键弹框

    2021年12月9日
    43
  • startActivityForResult 参数限制[通俗易懂]

    startActivityForResult 参数限制[通俗易懂]publicvoidstartActivityForResult(Intentintent,intrequestCode)ParametersintentTheintenttostart.requestCodeIf>=0,thiscodewillbereturnedinonActivityResult()whentheactivity

    2022年7月11日
    15
  • HDU 2254 奥运(数论+矩阵)

    HDU 2254 奥运(数论+矩阵)

    2022年1月28日
    52
  • Stata: 合成控制法 synth 命令无法加载 plugin 的解决办法

    Stata: 合成控制法 synth 命令无法加载 plugin 的解决办法 作者:陈勇吏(上海交通大学安泰经济与管理学院) Stata连享会:知乎|简书|码云|CSDNStata连享会 计量专题||精品课程||简书推文||公众号合集 连享会#金秋十月@空间计量专题(2019.10.24-27,成都)连享会:内生性问题及估计方法专题 合成控制法的常用命令synth在使用过程中,可能会出…

    2022年5月1日
    82
  • 5分钟快速了解MySQL索引的各种类型

    5分钟快速了解MySQL索引的各种类型之所以在索引在面试中经常被问到,就是因为:索引是数据库的良好性能表现的关键,也是对查询能优化最有效的手段。索引能够轻易地把查询性能提高几个数量级。

    2022年6月24日
    30
  • 基于gitlab的CICD流程规范

    基于gitlab的CICD流程规范前言:这篇文章主要讲一讲基于gitlab的CICD流程规范基于gitlab的CICD流程规范一、简介二、CICD流程图三、CICD说明四、结合CICD流程拓展1、业务代码-数据库基于flyway实现版本控制2、数据库版本控制3、二进制或内置五、代码质量检查及自动化测试(未来)六、疑问解答与加群交流学习一、简介为了提升线下测试效率,缩短测试时间,提升提测代码质量,规范流程,缩短测试准备和执行时间,缩短问题定位时间,提供预测性指标,规范CICD流程,以提升整体团队效率。二、CICD流程图三、CICD

    2022年6月14日
    110

发表回复

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

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