class="java" name="code">import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class XmlToList { public static Map xmltoMap(Element nodeElement) { try { Map map = new HashMap(); if (nodeElement.isTextOnly()) { map.put(nodeElement.getName(), nodeElement.getText()); } else { List node = nodeElement.elements(); Iterator it = node.iterator(); while (it.hasNext()) { Element elm = (Element) it.next(); if (!elm.isTextOnly()) { List lis = xmltoList(elm); map.put(elm.getName(), lis); lis = null; } else { map.put(elm.getName(), elm.getText()); } elm = null; } node = null; } nodeElement = null; return map; } catch (Exception e) { e.printStackTrace(); } return null; } public static List xmltoList(Element nodesElement) { try { List list = new ArrayList(); List nodes = nodesElement.elements(); for (Iterator its = nodes.iterator(); its.hasNext();) { Element nodeElement = (Element) its.next(); Map map = xmltoMap(nodeElement); list.add(map); map = null; } nodes = null; nodesElement = null; return list; } catch (Exception e) { e.printStackTrace(); } return null; } public static List xml2ListExecute(String xml) { try { List list = new ArrayList(); Document document = DocumentHelper.parseText(xml); Element nodesElement = document.getRootElement(); list = xmltoList(nodesElement); return list; } catch (Exception e) { e.printStackTrace(); } return null; } public static Map xml2MapExecute(String xml) { try { Map map = new HashMap(); Document document = DocumentHelper.parseText(xml); Element nodesElement = document.getRootElement(); map = xmltoMap(nodesElement); return map; } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] args) { String xmlStr = "<ROOT><ITEM><BBXH>000000021007</BBXH><ABS><AAA>111</AAA><BBB>222</BBB></ABS><QX_JGDM>130100000000000</QX_JGDM><BBMC>130100000统计报表</BBMC><JG_MC>130100000委</JG_MC><LRSJ>2013-12-04</LRSJ><SJSHRQ></SJSHRQ><SJSHR_DM></SJSHR_DM><ND>2013</ND><HZBZ>N</HZBZ></ITEM><ITEM><BBXH>20131204000000021008</BBXH><QX_JGDM>130100000000000</QX_JGDM><BBMC>130100000130100000报表</BBMC><JG_MC>130100000委</JG_MC><LRSJ>2013-12-04</LRSJ><SJSHRQ></SJSHRQ><SJSHR_DM></SJSHR_DM><ND>2013</ND><HZBZ>N</HZBZ></ITEM></ROOT>"; String xmlStr1 = "<ROOT><ITEM><BBXH>345</BBXH></ITEM></ROOT>"; String xmlStr2 = "<ROOT><ITEM><BBXH>20131204000000021007</BBXH><ABS><AAA>111</AAA><BBB>222</BBB></ABS><QX_JGDM>130100000000000</QX_JGDM><BBMC>130100000报表</BBMC><JG_MC>130100000130100000委</JG_MC><LRSJ>2013-12-04</LRSJ><SJSHRQ></SJSHRQ><SJSHR_DM></SJSHR_DM><ND>2013</ND><HZBZ>N</HZBZ></ITEM></ROOT>"; /* * List list = xml2ListExecute(xmlStr); for (Iterator its = * list.iterator(); its.hasNext();) { Map map = (Map)its.next(); * if(map.get("ROOT")!=null){ System.out.println(map.get("ROOT")); } * if(map.get("ITEM")!=null){ System.out.println(map.get("ITEM")); } * if(map.get("ABS")!=null){ * System.out.println(((Map)((List)map.get("ABS")).get(0)).get("AAA")); * } * * * // * System.out.println(((Map)((List)map.get("ABS")).get(0)).get("aaa")); * } */ Map map = xml2MapExecute(xmlStr1); System.out.println(((Map) ((List) map.get("ITEM")).get(0)).get("BBXH")); // xmlStr2 /* * System.out.println(((Map)((List)map.get("ITEM")).get(0)).get("BBXH")); * System.out.println(((Map)((List)map.get("ITEM")).get(1)).get("AAA")); * System.out.println(((Map)((List)map.get("ITEM")).get(1)).get("BBB")); */ } }
?