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文件的格式进行存储.这样做的好处一方面可以通过减少与数据库的交互性操作提高 ...
随机推荐
- PHP --字符串编码转换(自动识别原编码)
/** * 对数据进行编码转换 * @param array/string $data 数组 * @param string $output 转换后的编码 */ function array_icon ...
- 记一个Oracle存储过程错误
下面一个存储过程是创建一个job,在5秒后更新一个表: create or replace PROCEDURE P_TEST AS jobno number; BEGIN dbms_job.submi ...
- 强大的数据库查询工具Database.NET 9.4.5018.42
原文:强大的数据库查询工具Database.NET 9.4.5018.42 强大的数据库查询工具Database.NET 9.4.5018.42 两个工具的下载地址,两个软件都是绿色免安装的,直接双击 ...
- 《HBase权威指南》读书笔记----简介
工作中要使用HBase,刚刚开始接触HBase,理解不深,只是记录一下 . HBase基于google的bigtable论文实现,属于nosql. 几个概念: (1)列(column):最基本单位为列 ...
- Tuxedo入门学�
中间件介绍: 介于客户机和server之间的夹层,突破了传统的c/s架构,为构建大规模,高性能,分布式c/s应用程序提供了通信,事物,安全,容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发, ...
- windows Azure平台开发
rest api 和SDK power shell azure pack
- 安装nodejs搭建ghost个人博客
记录一下今天在linux下折腾nodejs的过程,相互学习: (不知道为什么用源代码安装,调用npm的时候老是会出现找不到npmlog的 错误,后来换用下了个二进制 来搞,假设那个牛牛知道为什么.希望 ...
- c++爱问的面试问题
1.static_cast,dynamic_cast,reinterpret_cast,const_cast四种转换. 2.const行为 3.malloc/free, new/delete差额 4. ...
- R三星463无线网卡驱动,声音驱动程序,FN快捷键驱动,Easy_Display_Manager
http://download.csdn.net/detail/u012120447/7568369 当我们重装系统,该卡不能使用,您需要使用快捷键无法使用时, Easy_Display_Manage ...
- SignalR与ActiveMQ
SignalR与ActiveMQ结合构建实时通信 一.概述 本教程主要阐释了如何利用SignalR与消息队列的结合,实现不同客户端的交互 SignalR如何和消息队列交互(暂使用ActiveMQ消 ...