为了账号安全,请及时绑定邮箱和手机立即绑定

如何从Java中很好地打印XML?

如何从Java中很好地打印XML?

qq_花开花谢_0 2019-06-18 13:49:52
如何从Java中很好地打印XML?我有一个包含XML的Java字符串,没有行提要或缩进。我想将它转换为格式良好的XML字符串。我该怎么做?String unformattedXml = "<tag><nested>hello</nested></tag>";String formattedXml = new [UnknownClass]().format(unformattedXml);注意:我的输入是弦..我的输出是弦.(基本)模拟结果:<?xml version="1.0" encoding="UTF-8"?><root>   <tag>     <nested>hello</nested>   </tag></root>
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

基于这个答案的更简单的解决方案:

public static String prettyFormat(String input, int indent) {
    try {
        Source xmlInput = new StreamSource(new StringReader(input));
        StringWriter stringWriter = new StringWriter();
        StreamResult xmlOutput = new StreamResult(stringWriter);
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        transformerFactory.setAttribute("indent-number", indent);
        Transformer transformer = transformerFactory.newTransformer(); 
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.transform(xmlInput, xmlOutput);
        return xmlOutput.getWriter().toString();
    } catch (Exception e) {
        throw new RuntimeException(e); // simple exception handling, please review it
    }}public static String prettyFormat(String input) {
    return prettyFormat(input, 2);}

测试案例:

prettyFormat("<root><child>aaa</child><child/></root>");

返回:

<?xml version="1.0" encoding="UTF-8"?><root>
  <child>aaa</child>
  <child/></root>


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 728 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号