xml和Bean相互轉換
阿新 • • 發佈:2021-08-08
import com.thoughtworks.xstream.XStream; import org.dom4j.Document; import org.dom4j.DocumentHelper; /** * XML工具類 */ public class XmlUtil { private static XStream xStream = new XStream(); /** * 解析xml * @param xml xml字串 * @param elementName 要解析的父標籤 * @param cls 目標型別 * @return 解析結果 */ public static <T> T xmlToBean(String xml, String elementName, Class<T> cls) { T object = null; try { Document document = DocumentHelper.parseText(xml); //如果不是SOAP返回的報文,是XML字串則不需要這行程式碼 String beanXml = document.getRootElement().element("Body").element( elementName).asXML(); xStream.alias(elementName, cls); object = (T) xStream.fromXML(beanXml); } catch (Exception e) { e.printStackTrace(); } return object; } /** * 轉換XML * 物件新增 @XStreamAlias("標籤名稱") * 集合新增 @XStreamImplicit(itemFieldName="標籤名稱") * 否則會出現解析的xml中標籤帶類全稱現象 * @param object 要轉換的物件 * @return 結果字串 */ public static String beanToXml(Object object) { xStream.processAnnotations(object.getClass()); // 應用註解 xStream.autodetectAnnotations(true); //自動檢測註解 return xStream.toXML(object); } }