即使设置为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();
}
答案 0 :(得分:1)
确实如此。将XML声明放在HTML文件的顶部通常不是一个好主意,您应该考虑是否真的需要它。
如果你真的这样做,那么你需要创建自己的Writer类,从HTMLWriter扩展,使用writeDeclaration()的实现,或者从XMLWriter类中获取,或者根据你的要求实现。