对象装xml中CDATA问题

迷南。 2022-07-14 17:28 263阅读 0赞

前端时间做沃尔玛刊登的数据拼接时,遇到了对象转xml格式问题。

对象转xml是用以下方法:(将 < 换成< 这种写法是没办法的办法,如果有好的方法可以甩给我,jdk1.8版本 )

  1. public String convertToXMLCDATA(Object o) {
  2. try {
  3. JAXBContext context = JAXBContext.newInstance(o.getClass());
  4. Marshaller marshaller = context.createMarshaller();
  5. marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
  6. StringWriter sw = new StringWriter();
  7. marshaller.marshal(o, sw);
  8. marshaller.marshal(o, System.out);
  9. return sw.toString().replace("<", "<").replace(">", ">");
  10. } catch (JAXBException e) {
  11. e.printStackTrace();
  12. }
  13. return null;
  14. }

但是沃尔玛需要的格式是:

  1. <longDescription><![CDATA[<li>1rrrr23</li>]]></longDescription>

相对于html代码来说多了一个CDATA,此时需要添加一个xml适配器。xmlJavaTypeAdapter.

  1. import javax.xml.bind.annotation.adapters.XmlAdapter;
  2. public class CDataAdapter extends XmlAdapter<String, String> {
  3. public String unmarshal(String v) throws Exception {
  4. return "<![CDATA[" + v + "]]>";
  5. }
  6. public String marshal(String v) throws Exception {
  7. return "<![CDATA[" + v + "]]>";
  8. }
  9. }

在需要的字段上添加注解

  1. @XmlJavaTypeAdapter(CDataAdapter.class)
  2. protected String longDescription;

微笑 微笑 微笑

个人主页 ITDragon博客

发表评论

表情:
评论列表 (有 0 条评论,263人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PHP操作XML入门之CDATA区段

    XML(可扩展标记语言)是一种常用的数据交换格式,它被广泛应用于各种领域,包括Web开发和数据存储。在PHP中,操作XML数据非常常见,而CDATA区段是XML中的一种特殊格式

    相关 对象xmlCDATA问题

    前端时间做沃尔玛刊登的数据拼接时,遇到了对象转xml格式问题。 对象转xml是用以下方法:(将 < 换成< 这种写法是没办法的办法,如果有好的方法可以甩给我,jdk1.8版本

    相关 对象xmlCDATA问题

    前端时间做沃尔玛刊登的数据拼接时,遇到了对象转xml格式问题。 对象转xml是用以下方法:(将 < 换成< 这种写法是没办法的办法,如果有好的方法可以甩给我,jdk1.8版本

    相关 xmlcdata的作用

          当你用FLASH和xml结合做网站应用程序时,例如你做在我研究游戏排行榜中,当让人自由输入姓名时,人们可以输入一些符号,例如∶"<"、">"、"/"、"?"等,当生