dom4j解析xml文件
<?xml version="1.0" encoding="utf-8"?> <workflows> <queryRequest> <branchId>88037062</branchId> <merSysId>00000317</merSysId> <queryNo>948983692</queryNo> <billType>00</billType> <merBillStat>00</merBillStat> <billDate>201610</billDate> <individualArea>948983692</individualArea> </queryRequest> </workflows>
解析代碼:
private static Map<String,String> xml2Map(String xml) { Map<String, String> map = new HashMap<String, String>(); try { Document doc = DocumentHelper.parseText(xml);//將xml轉為dom對象 Element root = doc.getRootElement();//獲取根節點 Element element = root.element("queryRequest");//獲取名稱為queryRequest的子節點 List<Element> elements = element.elements();//獲取這個子節點里面的所有子元素,也可以element.elements("userList")指定獲取子元素 for (Object obj : elements) { //遍歷子元素 element = (Element) obj; map.put(element.getName(), element.getTextTrim());/getName System.out.println(element.getName()+"--"+element.getTextTrim()); } } catch (Exception e) { e.printStackTrace(); } return map; }
以下這種寫法也常見
public Boolean readStringXml(String xml) { Document doc = null; try { doc = DocumentHelper.parseText(xml); // 將字符串轉為XML Element rootElt = doc.getRootElement(); // 獲取根節點 Iterator<?> iter = rootElt.elementIterator("is_success"); // 獲取根節點下的子節點head // 遍歷head節點 while (iter.hasNext()) { Element recordEle = (Element) iter.next(); return recordEle.getText().equals("T")?true:false; } } catch (DocumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; }
xml轉為map
