xstream实现xml字符串与对象直接的转换

/**
 * TODO 使用xStream 实现xml字符和对象之间的转换
 * 

* * * * com.thoughtworks.xstream * xstream * ${xstream.version} * * * @author: [email protected] * @since: 2020/8/1 10:31 */ public class XmlUtils { private static final XStream xStreamHelper = new XStream(new StaxDriver()); // 初始化配置 static { XStream.setupDefaultSecurity(xStreamHelper); xStreamHelper.allowTypesByWildcard(new String[]{"org.demo.springcloud.**"}); xStreamHelper.ignoreUnknownElements();//忽略未知节点 xStreamHelper.autodetectAnnotations(true); } public static T xmlToBean(String xmlStr, Class clazz) { xStreamHelper.ignoreUnknownElements();//忽略未知节点 xStreamHelper.autodetectAnnotations(true); xStreamHelper.processAnnotations(clazz); return (T) xStreamHelper.fromXML(xmlStr); } public static T xmlToBean(File xmlFile, Class clazz) { xStreamHelper.processAnnotations(clazz); return (T) xStreamHelper.fromXML(xmlFile); } public static String beanToXmlStr(T t) { return xStreamHelper.toXML(t); } public static boolean beanToXml(T t, String filePath){ boolean flag = true; try { FileWriter fileWriter = new FileWriter(new File(filePath)); fileWriter.write(xStreamHelper.toXML(t)); fileWriter.flush(); fileWriter.close(); } catch (IOException e) { flag = false; e.printStackTrace(); }finally { return flag; } } public static void main(String[] args) { BsBankInfo bsBankInfo = new BsBankInfo(); bsBankInfo.setBankName("中国建设银行"); bsBankInfo.setBankNo("b10001"); String xmlStr = beanToXmlStr(bsBankInfo); System.out.println("===>" + xmlStr); System.out.println(xmlToBean(xmlStr, BsBankInfo.class).toString()); System.out.println(beanToXml(bsBankInfo, "d:/t.xml")); } }

 

你可能感兴趣的:(xstream实现xml字符串与对象直接的转换)