[b]需求:[/b]在生成xml文件中需要支援cdata標籤,而且不是所字段都需要增加,只需要某些特定的字段增加cdata的標籤。
[b]研究:[/b]在網上找了一些相關資料,基本採用的方法都是過載xppdriver,做乙個myxppdriver類對xppdriver進行擴充套件,myxppdriver中的作用,就是將要生成的xml檔案的text進行字元轉義,最後使用xstream xstream = new xstream(new myxppdriver)來建立xstream物件,最終支援cdata標籤。
[b]思考:[/b]首先本人認為這樣寫這個模擬較麻煩,現在我需要修改部份過載讓那些要輸出的text中,如果有""結束的字段就不用進行任何特殊符號的轉義,而某欄位沒有cdata標籤的起訖符號時,就依然使用原有的prettyprintwriter 的writertext方法輸出,即將text中的特殊符號進行轉義,如:引號(")會被轉義為""",以此來確保輸出的xml檔案在讀取時不會出錯
protected static string prefix_cdata = "";
/*** 初始化xstream
* 可支援某一字段可以加入cdata標籤
* 如果需要某一字段使用原文
* 就需要在string型別的text的頭加上""標籤,
* 以供xstream輸出時進行識別
* @param isaddcdata 是否支援cdata標籤
* @return
*/public static xstream initxstream(boolean isaddcdata)else}};
};});}else
return xstream;
}
XStream支援CDATA標籤
後來決定重寫了xstream的初始化方法,2步搞定。protected static string prefix cdata xstream初始化方法實現將string型別的屬性增加cdata return public static xstream initxstream else protect...
XStream入門示例DEMO
pojo類 public class xstreamtestpojo test類 public class xstreamtestutil public void writerxml listpojo catch ioexception e suppresswarnings unchecked pu...
XStream 去掉class屬性
最近開始用xstream,遇到乙個如下的問題 派單時間 sendtime 2013 12 16 在網上搜了一下,最後找到乙個解決方法 xstream xs new xstream xs.autodetectannotations true class cls o.getclass xs.alias ...