dom4j HTMLWriter缺少XML声明

时间:2012-06-07 19:59:10

标签: java html xml dom4j

即使设置为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();
    }

1 个答案:

答案 0 :(得分:1)

确实如此。将XML声明放在HTML文件的顶部通常不是一个好主意,您应该考虑是否真的需要它。

如果你真的这样做,那么你需要创建自己的Writer类,从HTMLWriter扩展,使用writeDeclaration()的实现,或者从XMLWriter类中获取,或者根据你的要求实现。