package com.util; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Test; public class Dom4JforXML { @Test public void test() throws Exception{ //创建SAXReader对象 SAXReader reader = new SAXReader(); //Dom4JforXML.class.getResourceAsStream(""); //读取文件 转换成Document //System.out.println(this.getClass().getResource("/").getPath()+"struts.xml"); Document document = reader.read(Dom4JforXML.class.getResource("struts.xml")); //获取根节点元素对象 Element root = document.getRootElement(); String xpath1 = "//action[@name='login']"; List list1=root.selectNodes(xpath1); Iterator it = list1.iterator(); while (it.hasNext()) { Element elt = (Element) it.next(); Attribute attr = elt.attribute("name"); } //遍历 //listNodes(root); } @Test public void test2(){ //Dom4JforXML.class.getClass().getResourceAsStream("struts.xml"); String name="getName"; //name String name1=name.substring(3); String result=name1.substring(0, 1).toLowerCase()+name1.substring(1); System.out.println(result); } //遍历当前节点下的所有节点 public void listNodes(Element node){ System.out.println("当前节点的名称:" + node.getName()); //首先获取当前节点的所有属性节点 List<Attribute> list = node.attributes(); //遍历属性节点 for(Attribute attribute : list){ System.out.println("属性"+attribute.getName() +":" + attribute.getValue()); } //如果当前节点内容不为空,则输出 if(!(node.getTextTrim().equals(""))){ System.out.println( node.getName() + ":" + node.getText()); } //同时迭代当前节点下面的所有子节点 //使用递归 Iterator<Element> iterator = node.elementIterator(); while(iterator.hasNext()){ Element e = iterator.next(); listNodes(e); } } }