JAXBContext返回生成XML
2015-12-24 00:00
375 查看
摘要: JAXBContext,xml,生成XML,JAVA生成XML,XML CDATA
用java 生成XML
1,需要的包
2,XML中有<!CDATA[]]需要的包
用回复微信消息做实例
检查XML实体类
为了生成CDATA
需要一个
jaxb.properties 文件 需要和需要生成的java类放在同一个目录
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
用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
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序