0

即使设置为 XHTML 模式,dom4j 1.6.1 HTMLWriter 也缺少 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 文件的顶部通常不是一个好主意,您应该考虑是否真的需要它。

如果你真的这样做了,那么你需要创建你自己的 Writer 类,从 HTMLWriter 扩展,并实现 writeDeclaration(),要么取自 XMLWriter 类,要么实现你的要求。

于 2012-06-07T23:21:34.900 回答