Dom4j读取xml文件
需要的jar包下载地址
官方下载地址(不要积分)
http://central.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar
准备需要下载test.xm
<?xml version="1.0" encoding="UTF-8"?>
<root>
<user editor="ccd" date="2018-1-10 11:52:20">
<name>zhangsan</name>
<year>24</year>
<sex>man</sex>
</user>
<user editor="ccd" date="2018-1-10 11:52:13">
<name>lisi</name>
<year>24</year>
<sex>woman</sex>
</user>
</root>
工具类代码
import java.io.File;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jXml {
public static void main(String[] args) throws DocumentException {
/**
* 获取文件的document对象,然后获取对应的根节点
*
* @author ccd
*/
SAXReader sax = new SAXReader();// 创建一个SAXReader对象
File xmlFile = new File("C:\\Users\\plj\\Desktop\\test.xml");// 根据指定的路径创建file对象
Document document = sax.read(xmlFile);// 获取document对象,如果文档无节点,则会抛出Exception提前结束
Element root = document.getRootElement();// 获取根节点
Dom4jXml.getNodes(root);// 从根节点开始遍历所有节点
}
/**
* 从指定节点开始,递归遍历所有子节点
*
* @author ccd
*/
public static void getNodes(Element node) {
System.out.println("--------------------");
// 当前节点的名称、文本内容和属性
System.out.println("当前节点名称:" + node.getName());// 当前节点名称
System.out.println("当前节点的内容:" + node.getTextTrim());// 当前节点名称
List<Attribute> listAttr = node.attributes();// 当前节点的所有属性的list
for (Attribute attr : listAttr) {// 遍历当前节点的所有属性
String name = attr.getName();// 属性名称
String value = attr.getValue();// 属性的值
System.out.println("属性名称:" + name + "属性值:" + value);
}
// 递归遍历当前节点所有的子节点
List<Element> listElement = node.elements();// 所有一级子节点的list
for (Element e : listElement) {// 遍历所有一级子节点
Dom4jXml.getNodes(e);// 递归
}
}
}