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, либо реализованной в соответствии с вашими требованиями.

Другие вопросы по тегам