我正在使用StAX XML流编写器编写XML文件。它将所有数据写入一行。我希望所有的标签都是缩进而不是一行。使用StAX格式化XML文件
4
A
回答
4
在这里找到答案:StAX XML formatting in Java
编辑:用一个简单的例子(没有资源清洗)STAX-utils的(https://stax-utils.dev.java.net/):
XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
FileOutputStream file = new FileOutputStream("d:/file.xml");
XMLEventWriter writer = xmlOutputFactory.createXMLEventWriter(file);
writer = new IndentingXMLEventWriter(writer);
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
writer.add(eventFactory.createStartDocument());
writer.add(eventFactory.createStartElement("", "", "a"));
writer.add(eventFactory.createStartElement("", "", "b"));
writer.add(eventFactory.createEndElement("", "", "b"));
writer.add(eventFactory.createEndElement("", "", "a"));
writer.add(eventFactory.createEndDocument());
这给了你:
<?xml version="1.0" encoding="UTF-8"?>
<a>
<b></b>
</a>
8
stax-utils提供IndentingXMLStreamWriter
这个工作:
XMLStreamWriter writer =
XMLOutputFactory.newInstance().createXMLStreamWriter(...);
writer = new IndentingXMLStreamWriter(writer);
...
1
例漂亮的印刷的OMElement(公理库):
OMElement mapArg = fac.createOMElement(name, elementNs);
mapArg.addAttribute("type", soapXml.getPrefix() + ":Map", xsi);
PropertyDescriptor[] properties = PropertyUtils.getPropertyDescriptors(value);
for (PropertyDescriptor property : properties) {
if (property.getName().equals("class"))
continue;
try {
mapArg.addChild(keyValue(property.getName(),
PropertyUtils.getProperty(value, property.getName())));
} catch (Exception e) {
}
}
final StringWriter stringWriter = new StringWriter();
try {
IndentingXMLStreamWriter xmlWriter = new IndentingXMLStreamWriter(StaxUtilsXMLOutputFactory.newInstance().createXMLStreamWriter(stringWriter));
mapArg.serialize(xmlWriter);
System.out.println(stringWriter.toString());
} catch (XMLStreamException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
谢谢!很有帮助 :) – 2012-10-08 08:47:25
相关问题
- 1. XML的StAX格式良好检查
- 2. 使用xmltextwriter格式化xml
- 3. 使用XmlDocument格式化XML
- 4. 格式化XML文件的文本
- 5. 用StaX跳过XML
- 6. 格式化XML文件:缩进
- 7. 在emacs XML模式下,如何格式化XML模式文件?
- 8. XSLT格式化XML文档
- 9. PowerShell使用format.ps1.xml文件格式化自定义对象
- 10. 格式化XML
- 11. 使用xslt重新格式化xml文件并保留确切格式
- 12. 使用Stax搜索XML文件中的字符串
- 13. 如何使用STAX将文件写入xml?
- 14. 使用stax和dom读取一个大的XML文件
- 15. stax xml验证
- 16. 如何StAX的处理XML的修改使用StAX
- 17. 使用csv文件格式化问题
- 18. 使用sed格式化大文件
- 19. 使用宏格式化csv文件
- 20. 使用%1 $ s格式化文件名
- 21. 使用StAX进行XML解析(时间优化)
- 22. 使用XSLT XML格式化问题
- 23. 使用xsl格式化Xml节点
- 24. 如何使用堆栈格式化xml?
- 25. 使用XML格式化日期
- 26. 如何使用Simple XML保存整齐格式化的XML文件?
- 27. 使用StaX附加XML元素
- 28. 使用STax解析Java中的XML
- 29. 使用StAX读取XML字符串
- 30. XML/XSL表格格式化
http://stackoverflow.com/questions/290326/stax-xml-formatting-in-java – skaffman 2010-06-01 11:12:33
@skaffman的重复:从我无法理解如何设置缩进参数以及我可以传递我的XML文件名的位置。 – Anurag 2010-06-01 12:20:03