当前位置:  开发笔记 > 编程语言 > 正文

Java中的StAX XML格式

如何解决《Java中的StAXXML格式》经验,为你挑选了4个好方法。

是否可以使用StAX(特别是woodstox)使用换行符和制表符格式化输出xml,即以下列形式:


  
   someData
  

代替:

someData

如果在woodstox中无法做到这一点,是否有其他轻量级库可以做到这一点?



1> Juha Syrjälä..:

有com.sun.xml.txw2.output.IndentingXMLStreamWriter

XMLOutputFactory xmlof = XMLOutputFactory.newInstance();
XMLStreamWriter writer = new IndentingXMLStreamWriter(xmlof.createXMLStreamWriter(out));



2> Josh..:

通过JDK : transformer.setOutputProperty(OutputKeys.INDENT, "yes");.


@Josh链接坏了.在SO上提出了这种方法:[使用StAX格式化XML文件](http://stackoverflow.com/questions/2949203/formatting-xml-file-using-stax/2952945#2952945)

3> Andrew Swan..:

如果您正在使用StAX游标API,则可以通过将XMLStreamWriter包装在缩进代理中来缩进输出.我在自己的项目中试过这个并且效果很好.



4> Roland..:

使用JDK Transformer:

public String transform(String xml) throws XMLStreamException, TransformerException
{
    Transformer t = TransformerFactory.newInstance().newTransformer();
    t.setOutputProperty(OutputKeys.INDENT, "yes");
    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
    Writer out = new StringWriter();
    t.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
    return out.toString();
}

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有