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

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

Jaxb解析器

2019-11-09 19:15:31
字體:
來源:轉載
供稿:網友
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;}}
上一篇:leetcode6. ZigZag Conversion

下一篇:13.4

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲阳县| 铁力市| 新泰市| 大足县| 淳化县| 长寿区| 昌图县| 灵寿县| 岱山县| 铜梁县| 会宁县| 连南| 万源市| 临夏市| 宜章县| 黑水县| 东港市| 烟台市| 柏乡县| 辽源市| 柘荣县| 霍州市| 怀安县| 大余县| 仁布县| 方正县| 襄城县| 安阳县| 乌苏市| 晋中市| 舟山市| 皋兰县| 嘉兴市| 新巴尔虎右旗| 同心县| 隆子县| 尤溪县| 龙门县| 额敏县| 墨玉县| 略阳县|