package com.coderising.litestruts.xml.read; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class XmlService { private File file; public static Map map = new HashMap(); public XmlService() { file = new File("E:/2017learn/coding2017/group19/2558178127/src/com/coderising/litestruts/struts.xml"); } public Document getDocument() { SAXReader reader = new SAXReader(); Document document = null; try { document = reader.read(file); } catch (Exception e) { e.printStackTrace(); } return document; } //读取xml public void readDocument() { List<Element> sonElementList = getDocument().getRootElement().elements(); Element root = getDocument().getRootElement(); getElement(sonElementList); System.out.println(map); } private List list = new ArrayList(); private void getElement(List<Element> sonElemetList) { for (Element sonElement : sonElemetList) { if (sonElement.elements().size() != 0) { getNodes(sonElement,list); getElement(sonElement.elements()); }else{ getNodes(sonElement,list); System.out.println(sonElement.getName() + ":"+ sonElement.getText()); } } } public void getNodes(Element node,List pname){ //当前节点的名称、文本内容和属性 System.out.println("当前节点名称:"+node.getName());//当前节点名称 System.out.println("当前节点的内容:"+node.getTextTrim());//当前节点内容 List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list String classValue=""; for(Attribute attr:listAttr){//遍历当前节点的所有属性 String name=attr.getName();//属性名称 String value=attr.getValue();//属性的值 System.out.println("属性名称:"+name+"属性值:"+value); if("login".equals(value) || "logout".equals(value)){ pname.add(0,value); }else{ map.put(pname.get(0)+value, node.getTextTrim()); } if("class".equals(name)&&pname!=null){ classValue=value; map.put(pname.get(0)+"class", value); } // } } }