我正在使用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. java.net.MalformedURLException - 用StAX解析XML文件
- 3. 使用xmltextwriter格式化xml
- 4. 格式化XML文件的文本
- 5. 使用STAX XMLStreamWriter合併XML
- 6. Android字符串xml文件格式化
- 7. 格式化並重寫xml文件
- 8. 在eclipse中格式化XML文件
- 9. 格式化XML輸出文件
- 10. 格式化XML文件:縮進
- 11. 用StaX跳過XML
- 12. 在emacs XML模式下,如何格式化XML模式文件?
- 13. XSLT格式化XML文檔
- 14. STAX解析 - 移動一個xml文件
- 15. 使用Spark格式化文本文件
- 16. 使用jquery格式化文本文件
- 17. 使用JavaScript在一個文件中格式化XML數據
- 18. 如何使用CSS格式化XML文件?
- 19. PowerShell使用format.ps1.xml文件格式化自定義對象
- 20. 使用換行符自動格式化的XML文件
- 21. 格式化XML
- 22. 使用xslt重新格式化xml文件並保留確切格式
- 23. 如何使用Stax從xml文件中提取屬性值?
- 24. 使用stax和dom讀取一個大的XML文件
- 25. 使用StAX和XPath讀取巨大的XML文件
- 26. 讀取XML的文件使用StAX /水壺(Pentaho的)
- 27. 使用Stax搜索XML文件中的字符串
- 28. 如何使用STAX將文件寫入xml?
- 29. stax xml驗證
- 30. 如何StAX的處理XML的修改使用StAX
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