2012-06-07 64 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類中獲取,也可以根據需要實現。