dom4j HTMLWriter отсутствует объявление XML
В HTMLWriter dom4j 1.6.1 отсутствует декларация XML, даже если установлен режим XHTML. Это исправить, вернувшись обратно к XMLWriter, но тогда мне не хватает всех возможностей HTML.
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.HTMLWriter;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
OutputFormat format = new OutputFormat();
format.setEncoding("UTF-8");
format.setXHTML(true);
format.setOmitEncoding(false);
format.setSuppressDeclaration(false);
HTMLWriter writer = null;
try {
writer = new HTMLWriter(format);
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
writer.write(createDocument());
writer.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
1 ответ
Решение
Это действительно так. Как правило, не стоит помещать объявление XML вверху HTML-файла, и вам следует подумать, действительно ли оно вам нужно.
Если вы действительно так делаете, то вам нужно создать свой собственный класс Writer, расширенный от HTMLWriter, с реализацией writeDeclaration(), либо взятой из класса XMLWriter, либо реализованной в соответствии с вашими требованиями.