最近在工作中,需要調別的接口,接口返回的是一個字符串,而且內容是xml格式的,結果在解析json的時候報錯,最終修改了接口的返回方式,以Map返回,
才得以接收到這個xml的字符串,然后通過dom4j來解析這個xml字符串。xml格式如圖:
解析代碼如下:
/**
* dom4j解析Xml
* @param xml
*/
public void getXmlAttribute(String xml) {
Document doc = null;
try {
// 將字符串轉為XML
doc = DocumentHelper.parseText(xml);
// 獲取根節點
Element rootElt = doc.getRootElement();
//獲取城市名
String cityPair = rootElt.attributeValue("CityPair");
System.out.println(cityPair);
//獲取CWS節點
Iterator CWS = rootElt.elementIterator("CWS");
while (CWS.hasNext()) {
Element recordEle = (Element) CWS.next();
//獲取ABK節點
Iterator ABK = recordEle.elementIterator("ABK");
while (ABK.hasNext()) {
Element abkRecord = (Element) ABK.next();
//獲取ABK節點下的所有節點
Iterator f = abkRecord.elementIterator();
while (f.hasNext()) {
BkresultBean bkresultBean = new BkresultBean();
Element itemAtr = (Element) f.next();
//獲取需要的數據
itemAtr.elementText("");
String berth1 = itemAtr.attributeValue("Berth1");
String priceOfOne = itemAtr.attributeValue("PriceOfOne");
System.out.println(berth1 + priceOfOne);
// bkresultBean.setBerth1(berth1);
// bkresultBean.setPriceofone(priceOfOne);
// bkresultBean.setFightline(cityPair);
// bkresultBeans.add(bkresultBean);
}
}
}
//插入數據
// bkresultBeans.forEach(bkresultBean -> {
// Integer insert = bkresultMapper.insertAllColumn(bkresultBean);
// });
} catch (DocumentException e) {
e.printStackTrace();
}
}
小結
工作總結。