декларация XML dom4j в документе - PullRequest
2 голосов
/ 12 мая 2011

Мне нужно удалить объявление XML из типа документа dom4j

Я создаю документ

doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);

Строка, проанализированная в Document doc с помощью DocumenHelper, не содержит декларации XML (это происходит из преобразования XML => XSL => XML) Я думаю, что DocumentHelper добавляет объявление в тело документа?

Есть ли способ удалить объявление XML из тела

doc

Ответы [ 3 ]

4 голосов
/ 20 ноября 2017

Я выбрал более простое решение:

doc.getRootElement().asXML();
2 голосов
/ 12 июля 2012

Вам нужно взаимодействовать с корневым элементом вместо документа. Например, используя стандартный формат вывода OutputFormat, указанный как PhilW :

Document doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);    
final Writer writer = new StringWriter();
new XMLWriter(writer).write(doc.getRootElement());
String out = writer.toString();
2 голосов
/ 24 мая 2011

Я не уверен, где именно это объявление является проблемой в вашем коде. У меня было это однажды, когда я хотел написать XML-файл без объявления (используя dom4j).

Так что, если это ваш вариант использования: то, что вы ищете, это "пропустить объявление". http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/io/OutputFormat.html

Google говорит, что это тоже можно установить как свойство, но не уверен, что он делает.

...