2012-06-07 62 views
0

即使设置为XHTML模式,dom4j 1.6.1 HTMLWriter也缺少XML声明。 它是通过改回XMLWriter来修复的,但后来我错过了所有的HTML特性。dom4j HTMLWriter缺少XML声明

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

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

如果真的这样做,那么您需要创建自己的Writer类(从HTMLWriter扩展)和writeDeclaration()的实现,这些实现可以从XMLWriter类中获取,也可以根据需要实现。