удалить объявление XML из сгенерированного документа XML с использованием Java - PullRequest
9 голосов
/ 25 января 2010
String root = "RdbTunnels";
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element rootElement = document.createElement(root);
document.appendChild(rootElement);   

OutputFormat format = new OutputFormat(document);
format.setIndenting(true);


XMLSerializer serializer = new XMLSerializer(System.out, format);
serializer.serialize(document);

дает следующий результат

<?xml version="1.0" encoding="UTF-8"?>
<RdbTunnels/>

но мне нужно удалить объявление xml из вывода, как я могу это сделать

Ответы [ 3 ]

15 голосов
/ 25 января 2010

Вы видели Выходные ключи , используемые Transformer ? В частности, OMIT_XML_DECLARATION .

Обратите внимание, что удаление заголовка действительно в XML 1.0, но вы теряете данные кодировки символов (среди прочего), что может быть очень важно.

10 голосов
/ 25 января 2010

Добавить

format.setOmitXMLDeclaration(true);

Пример

OutputFormat format = new OutputFormat(document);
format.setIndenting(true);
format.setOmitXMLDeclaration(true);
2 голосов
/ 28 июня 2011

Используя setOmitXMLDeclaration (true); метод из класса Format. Я не уверен, но я думаю, что он использует jDom lib.

Пример (будет отображаться файл XML без объявления XML документа Document)

XMLOutputter out= new XMLOutputter(Format.getCompactFormat().setOmitDeclaration(true));
out.output(document, System.out);
...