【dom4j】解析xml为map
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【dom4j】解析xml为map
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