首页 > 代码库 > JAXB 操作XML 与 Object
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。