转载自:
https://blog.csdn.net/qq_38254978/article/details/77870598
XML文件创建格式
<?xml version="1.0" encoding="utf-8" ?>
<root>
<part id = "01" name="选项一">
<name>我是徐茅山</name>
<age>今年20岁</age>
<sex>男</sex>
</part>
<part id="02" name="选项二">
<name>我是李逍遥</name>
<age>今年22岁</age>
<sex>男</sex>
</part>
</root>
xml文件的解析
package com.xinsi.qi.utils;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class Dom4jXml {
public void test(){
try {
File inputFile = new File("F:\\J2EE学习资料\\demoLes03\\web\\WEB-INF\\test.xml");
SAXReader reader = new SAXReader();
Document document = reader.read(inputFile);
System.out.println("Root element :"+document.getRootElement().getName());
Element classElement = document.getRootElement();
List<Node> nodes = document.selectNodes("/class/part[@id='02']");
System.out.println("--------------------");
for (Node node:nodes){
System.out.println("标签名=:"+node.getName());
System.out.println("姓名:"+node.selectSingleNode("name").getText());
System.out.println("年龄:"+node.selectSingleNode("age").getText());
System.out.println("性别:"+node.selectSingleNode("sex").getText());
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
List nodes = document.selectNodes(“/class/part[@id=’02’]”) 这段代码的意思是,定位到该元素属性的位置,使用该方法还需要下载,jaxen.jar包,jaxen的下载地址
@id=’02’的意思是定位到id为02的元素属性,以遍历的形式输出出来。
for (Node node:nodes){
System.out.println("标签名=:"+node.getName());
System.out.println("姓名:"+node.selectSingleNode("name").getText());
System.out.println("年龄:"+node.selectSingleNode("age").getText());
System.out.println("性别:"+node.selectSingleNode("sex").getText());
}
最终控制台的输出结果为:
标签名=:part
姓名:我是李逍遥
年龄:今年22岁
性别:男