国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 姜堰市| 宁明县| 普陀区| 南澳县| 东乡族自治县| 天台县| 阿坝| 门源| 略阳县| 武川县| 阜平县| 建平县| 张北县| 富平县| 梧州市| 永丰县| 陇南市| 铜鼓县| 边坝县| 桦甸市| 清新县| 赤峰市| 兴和县| 新野县| 耿马| 肇源县| 荥经县| 武强县| 诸城市| 深圳市| 揭东县| 昌乐县| 巴彦淖尔市| 中西区| 黄大仙区| 武定县| 东源县| 三河市| 云和县| 重庆市| 安阳县|