xml解析
创建一个Java类测试下,直接f复制下面代码到类里
*************************类开始************************************
package xml; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class TestXml { public static void main(String[] args) { String xml = "<?xml version='1.0' encoding='UTF-8'?>"+ "<cenode0 xmlns:ns0='http://test.com/'>"+ "<node1></node1>"+ "<node2>"+ "<node3>测试数据</node3>"+ "<node4>000110011</node4>"+ "<node5>"+ "<node7>ces3</node7>"+ "<node8>ces4</node8>"+ "</node5>"+ "<node6>"+ "<node9>ces1</node9>"+ "<node10>ces2</node10>"+ "</node6>"+ "</node2>"+ "</cenode0>"; Map map = test2(xml); System.out.println(map); } public static Map test2(String xml){ Document doc = null; Map m = new HashMap(); // 下面的是通过解析xml字符串的 try { doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element node = doc.getRootElement(); // 获取根节点 List<Element> listElement=node.elements();//所有一级子节点的list for(Element e:listElement){//遍历所有一级子节点 m.put(e.getName(), initnode(e)); } System.out.println(m); return m; } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } return m; } public static Object initnode(Element element){ List<Element> listElement=element.elements();//所有一级子节点的list if(listElement!=null&&listElement.size()>0){ Map m = new HashMap(); for(Element e:listElement){//遍历所有一级子节点 m.put(e.getName(), initnode(e)); } return m; }else{ return element.getStringValue().toString(); } } }
*************************类结束************************************
结果 : {node1=, node2={node4=000110011, node5={node8=ces4, node7=ces3}, node3=测试数据, node6={node10=ces2, node9=ces1}}}