2013-03-12 27 views
4

我使用XMLOutputter編寫xml文件,然後在android中使用它。當文件被寫入,串如何使用XMLOutputter禁用轉義

<string name="sname"><u>Text</u></string> 

我讀庫「<ü>文本<ù>」,然後把它變成JDOM文檔寫成

<string name="sname">&lt;u&gt;Text&lt;u&gt;</string> 

。然後,我寫使用

XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); 
Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8"); 
outputter.output(doc, writer); 
writer.close(); 

如何防止我逃跑,並把確切字符串從數據庫到文件的文件? (我想有 '<',而不是&lt;有)

回答

3

你應該能夠防止逃逸:

  • 擴展XMLOutputer和壓倒一切的escapeElementEntities方法

    XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()) { 
         @Override 
         public String escapeElementEntities(String str) { 
          return str; 
         } 
        }; 
    Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8"); 
    outputter.output(doc, writer); 
    writer.close(); 
    

我發現這個here

  • Format設置自定義EscapeStrategy,以防止逃逸某些字符

無論哪種方式,你要小心,以產生一個有效的XML。

希望這會有所幫助。

+1

謝謝,MJar。有用。我用jdom2試了這個,它沒有奏效,因爲jdom2中的XMLOutputter是最終的。我下載了第一個版本,現在它工作。 – 2013-03-12 11:49:30