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

如何从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>


qq_花开花谢_0
浏览 729回答 3
3回答

撒科打诨

基于这个答案的更简单的解决方案:public&nbsp;static&nbsp;String&nbsp;prettyFormat(String&nbsp;input,&nbsp;int&nbsp;indent)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source&nbsp;xmlInput&nbsp;=&nbsp;new&nbsp;StreamSource(new&nbsp;StringReader(input)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter&nbsp;stringWriter&nbsp;=&nbsp;new&nbsp;StringWriter(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StreamResult&nbsp;xmlOutput&nbsp;=&nbsp;new&nbsp;StreamResult(stringWriter); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformerFactory&nbsp;transformerFactory&nbsp;=&nbsp;TransformerFactory.newInstance(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transformerFactory.setAttribute("indent-number",&nbsp;indent); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transformer&nbsp;transformer&nbsp;=&nbsp;transformerFactory.newTransformer();&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transformer.setOutputProperty(OutputKeys.INDENT,&nbsp;"yes"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transformer.transform(xmlInput,&nbsp;xmlOutput); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;xmlOutput.getWriter().toString(); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;RuntimeException(e);&nbsp;//&nbsp;simple&nbsp;exception&nbsp;handling,&nbsp;please&nbsp;review&nbsp;it &nbsp;&nbsp;&nbsp;&nbsp;}}public&nbsp;static&nbsp;String&nbsp;prettyFormat(String&nbsp;input)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;prettyFormat(input,&nbsp;2);}测试案例:prettyFormat("<root><child>aaa</child><child/></root>");返回:<?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?><root> &nbsp;&nbsp;<child>aaa</child> &nbsp;&nbsp;<child/></root>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java