При разработке java-приложения, используя библиотеку dom4j, выполняется вывод xml.Я хочу добавить элемент инструкции обработки после объявления xml, а затем выписать обычный элемент.
Проблема
Я хочу исключить вставку пустых строк после элементов инструкций обработки.
FileOutputStream fos = null;
OutputFormat format = new OutputFormat(" ", true, "UTF-8");
XMLWriter writer = null;
try {
Document newDoc = DocumentHelper.createDocument();
Map<String, String> map = new LinkedHashMap<>();
// Add attributes of processing instruction to map
map.put("type", "text/xsl");
map.put("href", "../../test/sample.xsl");
// Generate processing instruction and add to dom
ProcessingInstruction pi = DocumentHelper.createProcessingInstruction("xml-stylesheet", map);
List<Node> headerList = newDoc.content();
headerList.add(0, pi);
// Add regular element to dom
Element person= newDoc.addElement("person");
person.addElement("name");
// xml export
fos = new FileOutputStream("C:\\demo\\demo.xml");
writer = new XMLWriter(fos, format);
writer.write(newDoc);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
demo.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../test/sample.xsl"?>
//?I want to delete this blank line
<person>
<name/>
</person>
Попробуйте
Даже если для setNewLineAfterDeclaration OutputFormat задано значение false, это будет следующим образом, если пустая строка после объявления xmlудаляется.
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="../../test/sample.xsl"?>
//?I want to delete this blank line
<person>
<name/>
</person>
Кроме того, если setNewLineAfterDeclaration для OutputFormat имеет значение false и отсутствует обработка инструкций, не было пустой строки.
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name/>
</person>
Невозможно удалить пустые строки после обработкиинструкция?Спасибо за ваше внимание.,.
Дополнительная информация
dom4j версия: 2.1.1