Я использую StAX XML stream writer для записи XML-файла. Он записывает все данные в одну строку. Я хочу, чтобы все теги были отступом, а не одной строкой.Форматирование XML-файла с помощью StAX
ответ
Ответил здесь: StAX XML formatting in Java
EDIT: Быстрый пример (без очистки ресурсов) с использованием Stax-Drivers (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>
stax-utils обеспечивает класс IndentingXMLStreamWriter
, который делает работу:
XMLStreamWriter writer =
XMLOutputFactory.newInstance().createXMLStreamWriter(...);
writer = new IndentingXMLStreamWriter(writer);
...
Не могли бы вы назвать файл jar. Я не получаю возможность загрузки на данном сайте. – Anurag
@Anurag - https://stax-utils.dev.java.net/files/documents/1519/50947/stax-utils-20070216.zip – chris
@Chris Я пробовал это с весенней периодичностью. Я получаю xml в правильном формате, но когда я развертываю это в weblogic и запускаю пакетное задание, я вижу « », вставленный в конце каждой строки. Как этого избежать? –
Пример довольно печати OMElement (Аксиома библиотека) с помощью StAX:
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();
}
Спасибо! Очень полезно :) –
- 1. StAX XML форматирование в Java
- 2. Форматирование процентов с помощью printf
- 3. DTD-анализ с помощью Stax
- 4. Написание огромных XML-файлов с помощью StAX
- 5. Как добавить расположение схемы с помощью StAX
- 6. XML-анализ с помощью API STAX
- 7. Изменение одного файла XML с помощью StAX
- 8. Как анализировать XML с помощью анализатора Stax
- 9. HTML записи с помощью StAX API
- 10. Запись строки xml с помощью StAX
- 11. Использования CatalogResolver с StAX
- 12. условное форматирование или форматирование с помощью VBA
- 13. Форматирование с помощью System.XML
- 14. Форматирование с помощью Clojure
- 15. Обновление большого XML с помощью Talend с модулем StAX
- 16. форматирование с помощью строки с помощью PHP
- 17. STAX Parser с большим XML
- 18. Кодировка игнорирования Stax игнорировать
- 19. инструкция обработки Stax
- 20. Преобразователь stax в DOM
- 21. Форматирование чисел с помощью ToString()
- 22. Форматирование текста с помощью ItextSharp
- 23. форматирование текста с помощью AngularJS
- 24. Условное форматирование с помощью VBA
- 25. форматирование валют с помощью Python
- 26. Форматирование Foreach с помощью Resharper
- 27. Форматирование массива с помощью numpy?
- 28. Xml форматирование с помощью узла
- 29. Форматирование текста с помощью PHP
- 30. Условное форматирование с помощью кода
Дубликат http://stackoverflow.com/questions/290326/stax-xml-formatting-in-java – skaffman
@skaffman: Из что я не могу понять, как установить палитру отступа и где я могу передать свое имя файла xml. – Anurag