0

dom4j 1.6.1 HTMLWriterには、XHTMLモードに設定されている場合でもXML宣言がありません。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();
    }
4

1 に答える 1

1

確かにそうです。一般に、XML宣言をHTMLファイルの先頭に配置することはお勧めできません。本当に必要かどうかを検討する必要があります。

本当にそうする場合は、XMLWriterクラスから取得するか、要件に合わせて実装されたwriteDeclaration()を実装して、HTMLWriterから拡張された独自のWriterクラスを作成する必要があります。

于 2012-06-07T23:21:34.900 に答える