2014-01-16 2 views
2

Когда я создаю JDOM документ (Документ DOC = новый документ();), по умолчанию я вижу только версию и кодировку в заголовке XML:создать XML с JDOM, как не установить автономный = «нет» атрибута

<?xml version="1.0" encoding="utf-8" ?> 

Как я могу добавить автономный атрибут, чтобы получить:

<?xml version="1.0" encoding="utf-8" standalone="no" ?> 

ответ

3

Заголовок обычно раздели на XmlParser до документа попадает в JDOM. Я уверен, что вы имеете в виду вы смотрите на выходе из JDOM, который добавляет объявление XML обратно.

Вы можете настроить, как XML-декларация обрабатывается путем создания custom XMLOutput processor ... с этим обычаем класс, переопределить метод printDeclaration и изменить его, чтобы делать то, что вам нужно ....

public static final XMLOutputProcessor XMLOUTPUT = new AbstractXMLOutputProcessor() { 
    @Override 
    protected void printDeclaration(final Writer out, final FormatStack fstack) throws IOException { 
     write(out, "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?> "); 
     write(out, fstack.getLineSeparator()); 
    } 
}; 

Затем, когда вы хотите использовать это, вы передаете его в XMLOutputter как:

XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat(), XMLOUTPUT); 
xout.output(doc, System.out); 

это очевидно, что механизм для этого довольно громоздкий. Я посмотрю, какие альтернативы есть, и, возможно, исправить это в будущей версии.