关于SAXReader解析XML文件数据
注意:须从maven公共库中添加dom4j依赖包(依赖于元素名和元素的方法)
解析xml代码
private static void parseXml(String path) throws Exception { // 调用dom4j依赖包中的SAXReader对象 SAXReader saxReader = new SAXReader(); // 通过read方法可以读取XML数据,返回Document格式对象 Document document = saxReader.read(path); // 使用getRootElement()方法获取根元素,根节点元素是students,返回element对象 Element element = document.getRootElement(); // 通过element()方法,获取该根节点下的所有子元素 List<Element> list = element.elements("student"); //循环遍历所有的子元素的信息 for (Element studentElement : list) { System.out.println("姓名:"+studentElement.elementText("Name")+ ",年龄:"+studentElement.elementText("Age")+ ",性别:"+studentElement.elementText("Gender")); } /* //第二种方法:通过子元素下的标签名---》element()获取对应的元素值 for(Element studentElement:list){ Element elementName=studentElement.element("Name"); Element elementAge=studentElement.element("Age"); Element elementGender=studentElement.element("Gender"); System.out.println("姓名:"+elementName.getText()+ ",年龄:"+elementAge.getText()+",性别"+elementGender.getText()); }*/ } public static void main(String[] args) throws Exception { String path = "src/test/resources/student.xml"; parseXml(path); }
要解析的student.xml文件
<?xml version="1.0" encoding="UTF-8"?> <students> <student number="1801001"> <Name>王尼玛</Name> <Age>21</Age> <Gender>男</Gender> </student> <student number="1801002"> <Name>赵铁柱</Name> <Age>22</Age> <Gender>男</Gender> </student> <student number="1801003"> <Name>李小花</Name> <Age>18</Age> <Gender>女</Gender> </student> </students>
实现结果:
解析代码:
1、读取xml文件
创建SAXReader对象并调用其read()方法来读取xml数据,并返回Document格式的对象。
2、解析xml数据
读取到Document对象后,我们使用getRootElement()方法来获取根元素,返回的是一个Element对象。Student.xml中的根元素即为students
3、获取子元素数据
获取到根元素后,便可以循环去一层层获取其他的子元素信息。知道子元素的标签名称,可以直接调用element("xxx")方法去获取该子元素【即上述代码中的方法二】,如果不知道子元素的名称或向直接获取该元素下的全部子元素,可以调用elements()方法获取一个包括全部子元素的list【即上述代码中的方法一】,然后进行下一步的处理
参考链接:https://blog.csdn.net/qq_36501591/article/details/80522531