即使设置为XHTML1.6.1模式,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();
}发布于 2012-06-08 07:21:35
确实是这样的。将XML声明放在HTML文件的顶部通常不是一个好主意,您应该考虑是否真的需要它。
如果您真的这样做了,那么您将需要创建您自己的Writer类,该类从HTMLWriter扩展而来,带有writeDeclaration()的实现,可以从XMLWriter类中获取,也可以根据您的需求来实现。
https://stackoverflow.com/questions/10938958
复制相似问题