XML与Object之间的互转

private static final String W3C_XML_SCHEMA_NS_URI = "http://www.w3.org/2001/XMLSchema";

/**

  • 将对象转换成xml
  • @param obj 要转成xml的对象
  • @param xsdPath 标准的xml文件就传null
  • @return xml格式的字符串
    */
    public static String objToXml(Object obj, String xsdPath) throws JAXBException, SAXException {
    StringWriter sw = new StringWriter();
    JAXBContext jAXBContext;
    jAXBContext = JAXBContext.newInstance(obj.getClass());
    Marshaller marshaller = jAXBContext.createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    marshaller.setProperty(Marshaller.JAXB_ENCODING, "GBK"); // 防止文件中文乱码
    if (TextUtils.isNotEmpty(xsdPath)) {
    marshaller.setSchema(SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI).newSchema(new File(xsdPath)));
    }
    marshaller.marshal(obj, sw);
    return sw.toString();
    }

    /**

  • 将xml格式转换为对象.
  • @param xml xml字符串
  • @param clazz 要转换成的对象
  • @param xsdPath 标准的xml解析传null
  • @return 转换后的对象br/>*/
    @SuppressWarnings("unchecked")
    public static <T> T xmlToObj(String xml, Class<T> clazz, String xsdPath) throws JAXBException, SAXException {
    JAXBContext jAXBContext = JAXBContext.newInstance(clazz);
    Unmarshaller um = jAXBContext.createUnmarshaller();
    if (TextUtils.isNotEmpty(xsdPath)) {
    um.setSchema(SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI).newSchema(new File(xsdPath)));
    }
    return (T) um.unmarshal(new StreamSource(new StringReader(xml)));
    }

XML与Object之间的互转

原文地址:http://blog.51cto.com/9381188/2324750

时间: 2024-11-06 09:35:04

XML与Object之间的互转的相关文章

xstream实现xml与Object之间的自如转换

因为项目中用到xml交互数据,所以一时间想起了这个工具(XStream),于是琢磨了怎么使用.通过自已的一些编程经验及网络的强大,最终轻松搞定.需要准备如下jar包(xstream-1.4.7.jar.xpp3_min-1.1.4c.jar.xmlpull-1.1.3.1.jar) 1. 编写对应实体 RootBean @XStreamAlias("root") public class RootBean { @XStreamAlias("DocInfo") pri

JavaScript三种数据类型之间的互转

一:number<===>string  数字类型和字符串类型之间的互相转换 number===>string 数字转字符串有三种方式: 1.在数字后面 +“ ”; 2.利用字符串的包装类型 String(number); 3.类型Object的prototype原型中的 toString()方法; var num=10; var str1=num+""; var str2=String(num); var str3=num.toString(); document.

JAXB完成XML与Java对象的互转

这段时间都老忙了,甚至连周末所有人员都在赶产品的进度,想想连续上12天班,人都有点晕了!到这会儿终于有点时间,所以准备和大家分享一下JAXB,会不会有人觉得有点陌生呢?没事,这里跟大伙儿简单的描述一下: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档.从另一方面来讲,JA

fastjson对象,JSON字符串,map之间的互转

1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class); 2.对象集合与字符串之间的互转 将对象集合转换成为字符串 String users = JSON.toJSONString(users); 将字符串转换成为对象集合 List<User> userList = JSON.parse

xml和bean之间转化

xml和bean之间转化//bean@XmlRootElement(name = "register")br/>@XmlAccessorType(XmlAccessType.PROPERTY)@XmlType(propOrder = {"name","age" })public class User {private String name;private String age;public String getName() {return

fastjson对象,JSON,字符串,map之间的互转

1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class); 2.对象集合与字符串之间的互转 将对象集合转换成为字符串 String users = JSON.toJSONString(users); 将字符串转换成为对象集合 List<User> userList = JSON.parse

protobuf,json,xml,binary,Thrift之间的对比

http://blog.csdn.net/angus_17/article/details/8493448 binary 二进制,数据流,也可以转化成 1100011类似的 protobuf 是google的,二进制的数据传输协议,性能比 xml 和 json 号. 但 可读性 差 Thrift 是 FackBook的,性能 比 protobuf还好 一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf

php中 xml json 数组 之间相互转换

php中 xml json  数组 之间相互转换 1 数组转json $result = array( 'status' =>$status, 'message'=>$message, 'data'=>$data, ); json_encode($result);

JAXB的XML和Object的自动转换

JAXB可以实现XML和Object的自动转换,这样我们就不用再自己写xml的解析了. 1.从xml文件读取自动转换成Object 2.从xml字符串读取自动转换成Object 3.把对象转化成xml输出到控制台 4.把对象转化成xml输出到文件 5.把对象转化成xml字符串 vdi.xml <?xml version="1.0" encoding="UTF-8"?> <vdis size="2" batch_number=&q