XML和JSON是我們常見的服務端與客戶端數據交互的方式,解析的方法也多種多樣,這里介紹的是利用JAVA反射的機制來解析XML到實體。代碼很簡單,看下就明白,有什么改進的建議可以在下面評論,下面貼代碼:
public static List readJingDian(String xmlStr, T t) {
List list = new ArrayList();// 創建list集合
try {
Document doc = DocumentHelper.parseText(xmlStr);
Element root = doc.getRootElement();// 獲得根節點
Element bodyRoot;// body節點
Field[] properties = t.getClass().getDeclaredFields();// 獲得實例的屬性
// 實例的set方法
Method setmeth;
bodyRoot = root.element("body");
Element element2 = bodyRoot.element("orderList");
List lists = element2.elements("order");
for (Element element : lists) {
// Element next = (Element) l.next();
AttractionsOrderEntity t1 = new AttractionsOrderEntity();
for (int j = 0; j < properties.length; j++) {
// 遍歷所有孫子節點
// 實例的set方法
setmeth = t1.getClass().getMethod(
"set"
+ properties[j].getName()
.substring(0, 1).toUpperCase()
+ properties[j].getName().substring(1),
properties[j].getType());
// properties[j].getType()為set方法入口參數的參數類型(Class類型)
setmeth.invoke(t1,
element.elementText(properties[j].getName()));// 將對應節點的值存入
}
list.add(t1);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}