国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Jaxb解析器

2019-11-10 17:15:06
字體:
來源:轉載
供稿:網友
package com.mx.tmc.core.util;import java.io.StringReader;import java.io.StringWriter;import java.util.Collection;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBElement;import javax.xml.bind.JAXBException;import javax.xml.bind.Marshaller;import javax.xml.bind.Unmarshaller;import javax.xml.bind.annotation.XmlAnyElement;import javax.xml.namespace.QName;import org.apache.commons.lang3.StringUtils;public class JAXBParser {// 多線程安全的Context.PRivate JAXBContext jaxbContext;/*** @param types*            所有需要序列化的Root對象的類型.*/public JAXBParser(Class<?> types) {try {jaxbContext = JAXBContext.newInstance(types);} catch (JAXBException e) {throw new RuntimeException(e);}}/*** Java Object->Xml.*/public String toXml(Object root, String encoding) {try {StringWriter writer = new StringWriter();createMarshaller(encoding).marshal(root, writer);return writer.toString();} catch (JAXBException e) {throw new RuntimeException(e);}}/*** Java Object->Xml, 特別支持對Root Element是Collection的情形.*/@SuppressWarnings("unchecked")public String toXml(Collection root, String rootName, String encoding) {try {CollectionWrapper wrapper = new CollectionWrapper();wrapper.collection = root;JAXBElement<CollectionWrapper> wrapperElement = new JAXBElement<CollectionWrapper>(new QName(rootName),CollectionWrapper.class, wrapper);StringWriter writer = new StringWriter();createMarshaller(encoding).marshal(wrapperElement, writer);return writer.toString();} catch (JAXBException e) {throw new RuntimeException(e);}}/*** Xml->Java Object.*/@SuppressWarnings("unchecked")public <T> T fromXml(String xml) {try {StringReader reader = new StringReader(xml);return (T) createUnmarshaller().unmarshal(reader);} catch (JAXBException e) {throw new RuntimeException(e);}}/*** Xml->Java Object, 支持大小寫敏感或不敏感.*/@SuppressWarnings("unchecked")public <T> T fromXml(String xml, boolean caseSensitive) {try {String fromXml = xml;if (!caseSensitive)fromXml = xml.toLowerCase();StringReader reader = new StringReader(fromXml);return (T) createUnmarshaller().unmarshal(reader);} catch (JAXBException e) {throw new RuntimeException(e);}}/*** 創建Marshaller, 設定encoding(可為Null).*/public Marshaller createMarshaller(String encoding) {try {Marshaller marshaller = jaxbContext.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);if (StringUtils.isNotBlank(encoding)) {marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);}return marshaller;} catch (JAXBException e) {throw new RuntimeException(e);}}/*** 創建UnMarshaller.*/public Unmarshaller createUnmarshaller() {try {return jaxbContext.createUnmarshaller();} catch (JAXBException e) {throw new RuntimeException(e);}}/*** 封裝Root Element 是 Collection的情況.*/public static class CollectionWrapper {@SuppressWarnings("unchecked")@XmlAnyElementprotected Collection collection;}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽宁省| 麦盖提县| 闸北区| 靖西县| 贵溪市| 东莞市| 明光市| 娄底市| 迁安市| 临猗县| 咸宁市| 遂昌县| 句容市| 北安市| 闻喜县| 堆龙德庆县| 西乡县| 景洪市| 富阳市| 南陵县| 铜鼓县| 五莲县| 海丰县| 灵宝市| 镇宁| 新巴尔虎右旗| 泽库县| 通城县| 海门市| 奉化市| 吴旗县| 南宁市| 北川| 关岭| 晋江市| 府谷县| 五指山市| 台北县| 霍州市| 丹东市| 莫力|