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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160120.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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