XML-декларация dom4j в документе

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

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

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

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

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

doc

person Marcin Wasiluk    schedule 11.05.2011    source источник


Ответы (3)


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

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

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

person PhilW    schedule 24.05.2011

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

doc.getRootElement().asXML();
person Jerry Meng    schedule 20.11.2017
comment
очень просто и красиво. это помогло мне! - person user1506104; 14.12.2017

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

Document doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);    
final Writer writer = new StringWriter();
new XMLWriter(writer).write(doc.getRootElement());
String out = writer.toString();
person Kirby    schedule 12.07.2012