JAXB 操作XML 与 Object
Java Architecture for XML Binding) 是一个业界的标准,是一项能够依据XML Schema产生Java类的技术。是一种xml与object映射绑定技术标准。
JDK5下面开发须要的jar包:activation.jar、jaxb-api.jar、 jaxb-impl.jar、 jsr173-api.jar
JDK6以上版本号已经集成JAXB2的JAR,在文件夹{JDK_HOME}/jre/lib/rt.jar中。
@XmlAccessorType 注解 的枚举常量值说明:
代码片段:
* xml字符串 转 pojo
*
* @param t
* @param xmlStr
* @return
*/
@SuppressWarnings("rawtypes")
public static Object jaxbReadXml(Class cls, String xmlStr) {
ByteArrayInputStream stream = null;
try {
JAXBContext context = JAXBContext.newInstance(cls);
stream = new ByteArrayInputStream(xmlStr.getBytes("utf-8"));
Unmarshaller um = context.createUnmarshaller();
return um.unmarshal(stream);
} catch (Exception e) {
e.printStackTrace();
logger.error("----xml转对象出错:"+e.getMessage());
} finally {
if (stream != null) {
try {
stream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
} @SuppressWarnings("rawtypes")
public static Object jaxbReadXml(Class cls, byte[] bs) {
return jaxbReadXml(cls, new ByteArrayInputStream(bs));
} @SuppressWarnings("rawtypes")
public static Object jaxbReadXml(Class cls, InputStream in) {
try {
JAXBContext context = JAXBContext.newInstance(cls);
Unmarshaller um = context.createUnmarshaller();
return um.unmarshal(in);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
} /**
* pojo 转 xml字符串
*
* @param pojo
* @return
*/
public static <T> String jaxbWriteXml(T pojo) {
StringWriter out = null;
String xmlStr = null;
try {
JAXBContext context = JAXBContext.newInstance(pojo.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
out = new StringWriter();
marshaller.marshal(pojo, out);
xmlStr = out.toString();
// System.out.println(xmlStr);
} catch (Exception e) {
e.printStackTrace();
logger.error("----对象转xml出错:"+e.getMessage());
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return xmlStr;
}
JAXB 操作XML 与 Object的更多相关文章
- java成神之——jaxb操作xml的基本使用
JAXB 依赖 读取xml配置 写配置 自定义写配置 结语 JAXB 依赖 <dependency> <groupId>javax.activation</groupId ...
- Java操作XML的JAXB工具
在java中操作XML的工作中中,比较方便的工具是JAXB(Java Architecture for XML Binding). 利用这个工具很方便生成XML的tag和Java类的对应关系.参照网上 ...
- RCE via XStream object deserialization && SECURITY-247 / CVE-2016-0792 XML reconstruction Object Code Inject
catalogue . Java xStream . DynamicProxyConverter . java.beans.EventHandler . RCE via XStream object ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- XMl入门介绍及php操作XML
一.什么是XML XML全称:Extensible Markup Language 中文名:可扩展标记语言 用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,允许用户对自己的标 ...
- ADO.NET系列之操作XML
如题,我们保存数据的方式有很多种.在ASP.NET中,可以通过js赋值隐藏域的方式,也可以通过ViewState,Session这样的内置对象,还可以通过数据库的形式.现在经常用到的就是XML了,它的 ...
- C#操作xml的3种方式
C#操作Xml有很多种方式,这里写出个人常使用的三种方式 XmlDocument DataSet linq to xml 首先声明本次操作使用的xml文件:books.xml:内容如下 <?x ...
- asp.net操作xml(增删查改)
asp.net操作xml 1.xml文档Products.xml <?xml version="1.0" encoding="utf-8"?> &l ...
- php操作xml详解
XML是一种流行的半结构化文件格式,以一种类似数据库的格式存储数据.在实际应用中,一些简单的.安全性较低的数据往往使用 XML文件的格式进行存储.这样做的好处一方面可以通过减少与数据库的交互性操作提高 ...
随机推荐
- Robotium原则的实施源代码分析
从前面的章节<Robotium源代码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础.比方它注入事件的原理等,但 ...
- 教你如何使用U盘装系统
首先,你必须有一个4G以上U菜,然后,U光盘制作软件(这里我们使用url=KRVS0FUdaNAMKPUXUxjEijxBMalUjaJHph-tL-x4gXGSwVNUW3fj6RfuZtrMg1Y ...
- EHCache的使用
在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用.本文主要介绍EHCache的使用,以及使用EHCache的实践经验.笔者使用过多种基于Java的开源Cache组件,其中包括 ...
- WPF 图片浏览 伪3D效果
原文:WPF 图片浏览 伪3D效果 首先上效果图: 因项目要求,需要把图片以"好看"."炫"的效果展示出来,特地研究了一下WPF关于3D方面的制作,奈何最终成果 ...
- projecteuler---->problem=14----Longest Collatz sequence
title: The following iterative sequence is defined for the set of positive integers: n n/2 (n is eve ...
- Spring3.2 HelloWorld
直接上图吧: jar包: 项目文件夹一览: 这里的HelloWeb-servlet,xml 是在WEB-INF 下 HelloController: package com.cqu.tutorial; ...
- c# socket udp广播
一.广播消息 由于Tcp是有连接的,所以不能用来发送广播消息.发送广播消息,必须用到Udp,Udp可以不用建立连接而发送消息.广播消息的目的IP地址是一种特殊IP地址,称为广播地址.广播地址由IP地址 ...
- 几款开源ESB总线的比较(转)
现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...
- c# winform panel 流式布局 panel块可自动排列
代码下载地址 http://download.csdn.net/detail/simadi/7677053
- xml在此生活
小编尾随学习的步伐.今天小编简要概述xml在此生活,xml她的百度百科这一解释:可扩展标记语言 (ExtensibleMarkup Language, XML).用于标记电子文件使其具有结构性的标记语 ...