需求:在生成XML文档中需要支持CDATA标签,而且不是所字段都需要增加,只需要某些特定的字段增加CDATA的标签。
研究:在网上找了一些相关资料,基本采用的方法都是重载XppDriver,做一个MyXppDriver类对XppDriver进行扩展,MyXppDriver中的作用,就是将要生成的xml文件的text进行字符转义,最后使用XStream xstream = new XStream(new MyXppDriver)来创建XStream对象,最终支持CDATA标签。
思考:首先本人认为这样写这个类比较麻烦,现在我需要修改部份重载让那些要输出的text中,如果有"<![CDATA["开始和"]]>"结束的字段就不用进行任何特殊符号的转义,而某字段没有CDATA标签的起讫符号时,就依然使用原有的PrettyPrintWriter 的writerText方法输出,即将text中的特殊符号进行转义,如:引号(")会被转义为""",以此来确保输出的xml文件在读取时不会出错
protected static String PREFIX_CDATA = "<![CDATA[";
protected static String SUFFIX_CDATA = "]]>";
/**
* 初始化XStream
* 可支持某一字段可以加入CDATA标签
* 如果需要某一字段使用原文
* 就需要在String类型的text的头加上"<![CDATA["和结尾处加上"]]>"标签,
* 以供XStream输出时进行识别
* @param isAddCDATA 是否支持CDATA标签
* @return
*/
public static XStream initXStream(boolean isAddCDATA){
XStream xstream = null;
if(isAddCDATA){
xstream = new XStream(
new XppDriver() {
public HierarchicalStreamWriter createWriter(Writer out) {
return new PrettyPrintWriter(out) {
protected void writeText(QuickWriter writer, String text) {
if(text.startsWith(PREFIX_CDATA)
&& text.endsWith(SUFFIX_CDATA)) {
writer.write(text);
}else{
super.writeText(writer, text);
}
}
};
};
}
);
}else{
xstream = new XStream();
}
return xstream;
}
转载请标出处: http://donny-tsj.iteye.com/blog/951982
分享到:
相关推荐
XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不需要配置映射关系,对象和字段将映射为同名XML元素。但是当对象和字段名与XML中的元素名不同时,...
xstream最新版jar包
com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- message : No field 'null' found in class '.....' cause...
标签:thoughtworks、xstream、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
实现了bean转换为xml,xml转换为bean,xml转换为json等
xstream-1.4.2
标签:thoughtworks、xstream、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
如果是android的项目请使用xstream-1.4.4.jar
xstream-1.4.19.jar
xstream-1.4.20.jar
修改XStream源码,解决SAE不支持XStream的问题。
标签:thoughtworks、xstream、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...
xstream jar包,java对象转xml以及xml转java对象,操作很简单。
xstream 1.2 ,xstream 1.2.2.jar xstream 1.2 ,xstream 1.2.2.jar
xstream-1.4.2.jar,官网上也有,由于本人分没了,希望有分的同志给点分。如果你也每份,请上官网下,地址:http://xstream.codehaus.org/download.html
xstream-1.4.7.jar XML
XStream解析XML实例
XStream DOC