博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAXBContext返回生成XML
阅读量:7051 次
发布时间:2019-06-28

本文共 2504 字,大约阅读时间需要 8 分钟。

hot3.png

用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.jarorg.eclipse.persistence.asm_2.3.1.v20110908-r10021.jarorg.eclipse.persistence.core_2.3.0.v20110604-r9504.jarorg.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
NewsItems; public List
getNewsItems() { return NewsItems; } public void setNewsItems(List
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

转载于:https://my.oschina.net/u/1380675/blog/550359

你可能感兴趣的文章
doxygen
查看>>
iOS关于XML解析请求数据
查看>>
scrapy
查看>>
views 视图函数
查看>>
MySql详解(一)
查看>>
解题思路:蓄水池问题
查看>>
python网页分析
查看>>
总结 FileInputStream 与 FileOutputStream. BufferedInputStream 与 BufferedOutputStream .
查看>>
微信公众平台消息接口开发(8)小黄鸡(小贱鸡)机器人
查看>>
android 实时显示系统时间
查看>>
fatal error: asm/system.h: No such file or directory
查看>>
为什么要设计
查看>>
SerializableObj
查看>>
2018年5月31日笔记
查看>>
(转)CentOs上配置samba服务
查看>>
Photoshop给草坪上的人物加上唯美的紫色霞光
查看>>
移动平台对 META 标签的定义
查看>>
vim
查看>>
C# WINFORM判断程序是否运行,且只能运行一个实例
查看>>
curl 命令详解
查看>>