昆明达内培训的小编这一期给大家讲java注解生成xml和包含CDATA问题。

百度java生成xml,有一大推的文章,主要的生成方式一种使用Dom4J ,还有一种使用Jdk自带注解类!

下面主要整理我注解类的使用,(可以参考这篇文章Dom4J生成xml和包含CDATA问题)和xml中CDATA问题的解决方法!

1:要生成的xml原始文件!

version="1.0" encoding="utf-8"?>

35399645973

保湿>洗护]]>

310

93.8

85

35399645973_1

35399645973_2

35399645973_3

……

1

400x400

400x400

400x400

2:xml对应的model类!

(1):FanLiProductInofMsg.java

import

java.util.List;

import

javax.xml.bind.annotation.XmlAttribute;

import

javax.xml.bind.annotation.XmlElement;

import

javax.xml.bind.annotation.XmlElementWrapper;

import

javax.xml.bind.annotation.XmlRootElement;

/**

*

* @author aflyun

* @date 2016.06.12

*

*/

@XmlRootElement(name="item")

public class

FanLiProductInofMsg {

@XmlAttribute

private String version;

@XmlElement

private String id;

@XmlElement

private String title;

@XmlElement

private String category;

@XmlElement

private String url;//Pc商品的url

@XmlElement(name="url_wap")

private String urlWap;//Wap商品的url url_wap

@XmlElement

private String price;

@XmlElement(name="promotion_price")

private String

promotionPrice;//promotion_price

@XmlElement(name="wap_price")

private String wapPrice;//wap_price

@XmlElementWrapper(name="sub_item_ids")

@XmlElement(name="sub_item_id")

private List

subItemIds;//sub_item_ids

@XmlElement

private String detail;//detail

@XmlElement

private String status;//status

@XmlElementWrapper(name="pic_main")

@XmlElement(name="img")

private List mainImg;//pic_main

@XmlElementWrapper(name="pic_extra")

@XmlElement(name="img")

private List

extraImg;//pic_extra

public void setVersion(String version) {

this.version = version;

}

public void setId(String id) {

this.id = id;

}

public void setTitle(String title) {

this.title = title;

}

public void setCategory(String category) {

this.category = category;

}

public void setUrl(String url) {

this.url = url;

}

public void setUrlWap(String urlWap) {

this.urlWap = urlWap;

}

public void setPrice(String price) {

this.price = price;

}

public void setPromotionPrice(String

promotionPrice) {

this.promotionPrice = promotionPrice;

}

public void setWapPrice(String wapPrice) {

this.wapPrice = wapPrice;

}

public void

setSubItemIds(List subItemIds) {

this.subItemIds = subItemIds;

}

public void setDetail(String detail) {

this.detail = detail;

}

public void setStatus(String status) {

this.status = status;

}

public void setMainImg(List

mainImg) {

this.mainImg = mainImg;

}

public void setExtraImg(List

extraImg) {

this.extraImg = extraImg;

}

}

(2):Img .java

import

javax.xml.bind.annotation.XmlElement;

import

javax.xml.bind.annotation.XmlRootElement;

/**

*

* @author aflyun

* @date 2016.06.12

*

*/

@XmlRootElement

public class Img

{

@XmlElement(name="url")

private String url;

@XmlElement(name="size")

private String size;

public void setUrl(String url) {

this.url = url;

}

public void setSize(String size) {

this.size = size;

}

}

3:生成过程,已经CDATA问题处理!

package

com.dufy.test.xml;

import

java.io.ByteArrayOutputStream;

import

java.io.File;

import

java.io.FileWriter;

import

java.io.PrintWriter;

import java.util.ArrayList;

import

java.util.List;

import

javax.xml.bind.JAXBContext;

import

javax.xml.bind.Marshaller;

import

javax.xml.transform.sax.SAXResult;

import

org.apache.xml.serialize.OutputFormat;

import

org.apache.xml.serialize.XMLSerializer;

import

org.junit.Test;

import

com.kuyu.b2b2c.product.fanli.vo.FanLiProductInofMsg;

import

com.kuyu.b2b2c.product.fanli.vo.Img;

public class

JuintXmlTest {

private static Marshaller marshal;

@Test

public void testXml() throws Exception {

List list = new

ArrayList();

list.add("11_11_11");

list.add("22_22_22");

list.add("33_33_33");

List imgList = new

ArrayList();

Img img = null;

for (int i = 0; i < 2; i++) {

img = new Img();

img.setUrl("-" + i +

"-");

img.setSize("40×40");

imgList.add(img);

}

FanLiProductInofMsg fps = new

FanLiProductInofMsg();

fps.setVersion("1.0");

fps.setId("110");

fps.setTitle("4K高清");

fps.setCategory("电视>4K>高清");

fps.setUrl("http://baidu.com");

fps.setUrlWap("http://baidu.wap.com");

fps.setPrice("100");

fps.setPromotionPrice("111");

fps.setWapPrice("113");

fps.setSubItemIds(list);

fps.setDetail("wwwwwwwwwwwwwwwwwwwwwww");

fps.setStatus("1");

fps.setMainImg(imgList);

fps.setExtraImg(imgList);

PrintWriter pw = new PrintWriter(new

File("D:/test.xml"));

String ojbectToXmlWithCDATA =

ojbectToXmlWithCDATA(FanLiProductInofMsg.class, fps);

System.out.println(ojbectToXmlWithCDATA);

pw.println(ojbectToXmlWithCDATA);

pw.close();

}

public static String

ojbectToXmlWithCDATA(Class clazz, Object obj) throws Exception {

JAXBContext context =

JAXBContext.newInstance(clazz);

// configure an OutputFormat to

handle CDATA

OutputFormat of = new

OutputFormat();

of.setCDataElements(

new String[] {

"^title", //

"^category",

"^url",

"^url_wap",

"^detail"

}); //

// set any other options you'd like

of.setPreserveSpace(true);

of.setIndenting(true);

// create the serializer

ByteArrayOutputStream op = new

ByteArrayOutputStream();

XMLSerializer serializer = new

XMLSerializer(op, of);

SAXResult result = new

SAXResult(serializer.asContentHandler());

Marshaller mar =

context.createMarshaller();

mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

mar.marshal(obj, result);

return

op.toString("utf-8");

}

}

setCDataElements这里面你标注需CDATA的字段!

Java不生成 xml注解_java注解生成xml和包含CDATA相关推荐

  1. java 自定义注解_Java注解

    前言 近日在阅读开源项目,发现项目里好多奇奇怪怪的注解(@DataScope.@Log...)看得我一脸懵,不知道大家是否也有过这样的经历,回想了一下,发现自己对于注解的知识,好像只停留在@Overr ...

  2. java interface作用是什么_Java注解总结:史上最全,有这一篇就够了

    什么是注解? 注解的定义 官网描述如下: Java 注解用于为 Java 代码提供元数据.作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的.Java 注解是从 Jav ...

  3. java threadsafe 注解_Java 注解详解

    什么是注解 Annotation 中文译过来就是注解.标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解.而新手很难理解的主要原因是一些技术文档里的专业术语和名词不太 ...

  4. java 多重注解_Java注解-元数据、注解分类、内置注解和自定义注解

    大家好,我是乐字节的小乐,上次说过了Java多态的6大特性|乐字节,接下来我们来看看Java编程里的注解. Java注解有以下几个知识点:元数据 注解的分类 内置注解 自定义注解 注解处理器 Serv ...

  5. java method 注解_JAVA 注解详解及简单实例

    JAVA 注解详解及简单实例 何为注解 注解(Annotation)又称为元数据,在JDK1.5后引入,它的作用是: 生成文档  这是注解的原始用途,可以通过注解生成JavaDoc文档 跟踪代码的依赖 ...

  6. java编译时注解_Java注解处理器--编译时处理的注解

    1. 一些基本概念 在开始之前,我们需要声明一件重要的事情是:我们不是在讨论在运行时通过反射机制运行处理的注解,而是在讨论在编译时处理的注解. 注解处理器是 javac 自带的一个工具,用来在编译时期 ...

  7. java 废弃注解_Java 注解

    什么是注解呢?还记得Class是什么吗?注解就是Class对象中的⼀⼩段信息/⽂本/标记,它可以携带参数,可以在运⾏时被阅读.这就是注解的全部了.怎么处理注解并不是注解要关注的信息,它只是这么一小段信 ...

  8. java注解_Java注解教程及自定义注解

    Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...

  9. java 生成token代码_java token生成和校验的实例代码

    现在越来越多的登录方式都用到了token作为用户登录令牌,所以实现了一个token生成和校验案例. 缺点:该实现方式token是存储在内存中,不适合分布式项目,如需改为分布式项目部署,可把token存 ...

  10. java 获取注解_java 注解annotation的使用,以及反射如何获取注解

    1.元注解 元注解是指注解的注解.包括  @Retention @Target @Document @Inherited四种. 1. Annotation型定义为@interface, 所有的Anno ...

最新文章

  1. 当对象或对象属性为空时,如何安全给对象或对象属性添加默认值
  2. iPhone 6c配置和5s相近 4寸屏基本确定
  3. 新手探索NLP(八)——序列标注
  4. python 读图片性能测试
  5. 【译】JS基础算法脚本:类数组(arguments)去重
  6. CodeForces 570B,C
  7. shell:判断一个进程是否存在
  8. VSD Viewer for Mac(Visio绘图文件阅读器)
  9. php洗车分销系统_全国首个PHP宝塔IDC分销系统
  10. python定时器启动多次_python 定时器
  11. 动词变名词的变化规则_英语单词词性转换规则大全
  12. 移动网页支付(微信H5支付和支付宝网页支付)
  13. 小Biu的礼物——UPC
  14. LC6936-TWS耳机方案
  15. 【K210学习笔记】#MaixPy#(3)人脸检测与人脸识别
  16. 投资理财-老大爷的故事
  17. 阿迪、耐克过去式,李宁、安踏、特步现在时
  18. 使用SPSS做时间序列预测时,如何自定义日期型数据周期(时间数据周期)?
  19. 解决使用Python连接Mysql数据库时出现错误:Access denied for user 'xxx'@'xxx' (using password: NO)
  20. 程序猿之歌:一人我编程累

热门文章

  1. 数据库锁,事务特性,脏读,幻读,不可重复度,隔离级别,分布式事务,本地事务的介绍
  2. 计算机桌面最下面的横条怎么去掉,win7系统桌面出现横条如何去除?桌面出现横条去除方法...
  3. 怎么把文件word转换成pdf格式
  4. cnki账号 中国知网 免费 入口 用户名 密码 国内外学术刊物数据库账号
  5. 软件间对接时,常用的接口类型和协议类型有哪些
  6. 爬虫->TpImgspider
  7. LOAP引擎:clickhouse02: 引擎及sql语法
  8. 微信小程序image图片标签(超详细)
  9. 安装Ubuntu系统时硬盘分区最合理的方法
  10. 人脸识别主要算法原理