文档章节

JAXBContext返回生成XML

T_kress
 T_kress
发布于 2015/12/24 11:49
字数 265
阅读 376
收藏 3

码上生花,ECharts 作品展示赛正式启动!>>>

用java 生成XML

1,需要的包

javax.xml.bind.jar,
jaxb-api.jar,
jaxb-core.jar,
jaxb-impl.jar,
jaxb-jxc.jar,
jaxb-xjc.jar

2,XML中有<!CDATA[]]需要的包

com.springsource.javax.xml.bind-2.2.0.jar,
org.eclipse.persistence.antlr_2.3.0.v20110604-r9504.jar
org.eclipse.persistence.asm_2.3.1.v20110908-r10021.jar
org.eclipse.persistence.core_2.3.0.v20110604-r9504.jar
org.eclipse.persistence.moxy_2.3.1.v20110908-r10021.jar

用回复微信消息做实例

public String replay(UserObject text, Class classs) {
		JAXBContext context;
		String xmlObj = null;
		try {
			context = JAXBContext.newInstance(classs);
			Marshaller marshaller = context.createMarshaller(); 
			  marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
			    // 格式化XML输出,有分行和缩进
			    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
			    // 打印到控制台
			   // marshaller.marshal(text, System.out);
			    marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);//
			    ByteArrayOutputStream baos = new ByteArrayOutputStream();
			    marshaller.marshal(text, baos);
			try {
				 //  xmlObj = new String(baos.toByteArray());
				xmlObj= baos.toString("utf-8");
				//System.out.println(test);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			   
		} catch (JAXBException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  
		 // System.out.println(xmlObj);
		  return xmlObj.replace(" standalone=\"yes\"", "");
	}

检查XML实体类

import java.util.Calendar;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class NewsObject extends UserObject{
	public NewsObject(){
		super.setMsgType("news");
		super.setCreateTime(Calendar.getInstance().getTimeInMillis());
	}
	int ArticleCount;
	 @XmlElementWrapper(name="Articles") 
	 @XmlElement(name="item") 
	List<NewsItem> NewsItems;
	
	
	public List<NewsItem> getNewsItems() {
		return NewsItems;
	}
	public void setNewsItems(List<NewsItem> newsItems) {
		NewsItems = newsItems;
	}
	public int getArticleCount() {
		return ArticleCount;
	}
	public void setArticleCount(int articleCount) {
		ArticleCount = articleCount;
	}
	
}

为了生成CDATA 需要一个 jaxb.properties 文件 需要和需要生成的java类放在同一个目录 javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

© 著作权归作者所有

下一篇: PHPWEB在线客服
T_kress
粉丝 2
博文 16
码字总数 8107
作品 0
杭州
程序员
私信 提问
加载中
请先登录后再评论。
Java对象和XML的相互转换化

https://blog.csdn.net/u010331823/article/details/78258311 写在前面:Jaxb是JavaEE的规范.全称Java Architecture for XML Binding. 可以根据XML Schema产生Java类的技术.JAXB也提供了将X......

四海骄阳
04/04
0
0
JaxbContext生成xml文件或java类对象转化注解

JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换。在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版本JAX-WS2.1,其底层支持就是JAXB。 JAXB...

K_ONE
2016/02/16
329
0
Metaspace溢出排查过程

庞彤彤 2014年8月加入去哪儿,目前就职于大住宿事业部,主要负责交易运营相关内容。 一、问题 线上的 task 服务出现报警,没有服务者,发现有的机器突然下线了。 第一次出现问题时,发现服务...

Qunar技术沙龙
2018/06/12
0
0
记一次JVM Metaspace溢出排查

多图预警! 环境:系统测试(Windows Server/JRE8/tomcat7) 现象:应用运行几天后,出现访问超时,服务器cpu利用率居高不下 问题日志:OutOfMemoryError:MetaSpace 问题分析: 原因分析:Met...

浮躁的码农
2019/04/16
171
0
XML 和 java对象相互转换

下面使用的是JDK自带的类,没有引用任何第三方jar包。 Unmarshaller 类使客户端应用程序能够将 XML 数据转换为 Java 内容对象树。 备注:marshal(序列化、排列、整理) Marshaller 类使客户端...

Galy_绿
2015/12/24
71
0

没有更多内容

加载失败,请刷新页面

加载更多

Http和Nginx反代至Tomcat(LNMT、LAMT)

Http和Nginx反代至Tomcat(LNMT、LAMT) ================================================================================ 概述: 本章将主要介绍Http和Nginx反代至Tomcat,具体内容如下......

osc_facwbzof
3分钟前
0
0
mysql备份之mysqldump工具

参考文档: 利用mysqldump+二进制日志实现备份恢复数据库:http://www.178linux.com/60616 mysql进阶篇(三种备份方法总结:lvm, mysqldump, xtrabackup):http://www.178linux.com/9781 注意...

osc_ur9mmbck
5分钟前
0
0
实战nginx前端反代MogfileFS及负载均衡

实战nginx前端反代mogfilefs及负载均衡 =============================================================================== 实验描述: 使用Nginx代理请求至tackers,实现通过键就可以访问到...

osc_jvzgahav
6分钟前
0
0
Xshell远程操作liunx图形化桌面(xmanager,远程桌面)

必要条件: 1、安装全套的xmanager程序 2、Linux系统安装了图像界面 ~]# yum grouplist    # 查看可安装的桌面组件~]# yum groupinstall "组件名" 3、在shell远程连接主机的属性里...

osc_a45vpoh4
7分钟前
0
0
zabbix基础配置(二)

zabbix基础配置(二) ============================================================================= 概述: 本章我们将继续介绍zabbix的基础配置,具体内容如下: zabbix-agent的安装、...

osc_7bkuddw5
7分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部