`
123003473
  • 浏览: 1059792 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

XStream支持CDATA标签 .

    博客分类:
  • java
 
阅读更多
需求:在生成XML文档中需要支持CDATA标签,而且不是所字段都需要增加,只需要某些特定的字段增加CDATA的标签。

研究:在网上找了一些相关资料,基本采用的方法都是重载XppDriver,做一个MyXppDriver类对XppDriver进行扩展,MyXppDriver中的作用,就是将要生成的xml文件的text进行字符转义,最后使用XStream xstream = new XStream(new MyXppDriver)来创建XStream对象,最终支持CDATA标签。

思考:首先本人认为这样写这个类比较麻烦,现在我需要修改部份重载让那些要输出的text中,如果有"<![CDATA["开始和"]]>"结束的字段就不用进行任何特殊符号的转义,而某字段没有CDATA标签的起讫符号时,就依然使用原有的PrettyPrintWriter 的writerText方法输出,即将text中的特殊符号进行转义,如:引号(")会被转义为"&quot",以此来确保输出的xml文件在读取时不会出错


Java代码



1.protected static String PREFIX_CDATA    = "<![CDATA[";   
2.protected static String SUFFIX_CDATA    = "]]>";   
3.  
4.    /**  
5.     * 初始化XStream  
6.     * 可支持某一字段可以加入CDATA标签   
7.     * 如果需要某一字段使用原文  
8.     * 就需要在String类型的text的头加上"<![CDATA["和结尾处加上"]]>"标签,  
9.     * 以供XStream输出时进行识别  
10.     * @param isAddCDATA 是否支持CDATA标签   
11.     * @return  
12.     */  
13.    public static XStream initXStream(boolean isAddCDATA){   
14.        XStream xstream = null;   
15.        if(isAddCDATA){   
16.            xstream =  new XStream(   
17.               new XppDriver() {   
18.                  public HierarchicalStreamWriter createWriter(Writer out) {   
19.                     return new PrettyPrintWriter(out) {   
20.                     protected void writeText(QuickWriter writer, String text) {   
21.                                      if(text.startsWith(PREFIX_CDATA)    
22.                                         && text.endsWith(SUFFIX_CDATA)) {   
23.                                          writer.write(text);   
24.                                      }else{   
25.                                          super.writeText(writer, text);   
26.                                      }   
27.                      }   
28.                    };   
29.                  };   
30.                }   
31.            );   
32.        }else{   
33.            xstream = new XStream();   
34.        }   
35.     return xstream;   
36.    }  


【转载地址】http://blog.csdn.net/ben1247/article/details/6252651
分享到:
评论

相关推荐

    最齐全的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 最齐全的xstream1.4.8.jar ...

    xstream-1.4.5.jar

    xstream xstream-1.4.5.jar

    xstream-1.4.20.jar

    xstream-1.4.20.jar

    xstream-1.4.2.jar

    标签"xstream.jar"明确了这是一个Java档案(JAR)文件,通常包含Java类、资源和其他相关文件,使得它们能在Java运行环境中被直接使用。XStream作为一个库,其JAR文件可以直接添加到Java项目的类路径中,以便于调用其...

    xstream_1.4.11.1.jar

    xstream_1.4.11.1.jar 是list转化为xml必须的jar包,通过下载导入可以正常使用

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    com.thoughtworks.xstream.XStream操作XML和java对象的一些用法

    String xml = xstream.toXML(user); ``` 这将会生成类似下面的XML字符串: ```xml &lt;name&gt;Alice &lt;age&gt;25 ``` 2. **将List集合转换成XML文档** 如果你有一个User对象的List,XStream同样可以处理: ``...

    xstream-1.4.12.jar

    最新xstreamb1.4.12出来了,功能强大及代码简洁性是JAVA的特性,欢迎大家下载使用,以提高你的开发效率。

    XStream使用文档 wd.docx

    xstream.alias("phone", PhoneNumber.class); Person person = new Person("John", "Doe"); person.setPhone(new PhoneNumber("12345678")); person.setFax(new PhoneNumber("98765432")); String xml = ...

    xstream-1.4.3.jar.zip

    Person deserializedPerson = (Person) xstream.fromXML(xml); ``` XStream的灵活性还体现在其支持自定义转换器,这允许开发者对特定类型的数据进行特殊处理。此外,它还提供了安全模式,可以防止潜在的跨站脚本...

    xstream-1.4.17.jar

    xstream-1.4.17.jar

    xstream-1.4.19.jar

    xstream-1.4.19.jar

    xstream-1.4.3.jar 包 对象转xml

    xstream-1.4.3.jar 包 对象转xmlxstream-1.4.3.jar 包 对象转xmlxstream-1.4.3.jar 包 对象转xmlxstream-1.4.3.jar 包 对象转xmlxstream-1.4.3.jar 包 对象转xmlxstream-1.4.3.jar 包 对象转xmlxstream-1.4.3.jar 包...

    xstream.jar及其他依赖jar包

    "xstream.jar及其他依赖jar包"是解决这一问题的重要工具,它包括了xstream-1.4.10.jar、xpp3-1.1.4c.jar和xmlpull_1_0_5.jar这三个文件。这些jar包提供了全面的Java对象到XML以及XML到Java对象的转换功能,简化了...

    xstream1.4.15.JAR

    XStream 是一个流行的 Java 库,用于将对象序列化为 XML 和从 XML 反序列化回对象。这个库广泛应用于各种 Java 应用程序,尤其是那些需要在网络间传输或存储对象数据的情况。在标题提到的 "xstream1.4.15.JAR" 文件...

    xStream完美转换XML.docx

    3. **配置xStream**:可以使用`xstream.alias()`或`xstream.registerConverter()`等方法来设置别名或注册自定义转换器。 4. **对象到XML**:使用`xstream.toXML(object)`方法将Java对象转换为XML字符串。 5. **XML...

    xstream-1.4.1.jar

    xstream-1.4.1.jar XML解析

    activemq-transport-xstream-1.5.jar

    官方版本,亲测可用

    xstream-1.4.3-sources.jar

    XStream 用法详解 XML 转换为 java 实体类 所需要的 xstream-1.4.3-sources.jar jar包 具体实现请参考 http://blog.csdn.net/morning99/article/details/28875159

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

Global site tag (gtag.js) - Google Analytics