XML文件解析技术:Dom4J
package com.czie.d1_dom4j; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Test; import java.io.InputStream; import java.util.List; /** * FileName: Dom4jHellowWroldDemo1 * Author: lps * Date: 2022/4/28 13:55 * Sign:刘品水 Q:1944900433 * 目标:学会dom4j解析XML文件的数据 * 1.导入dom4j框架 * 2.准备一个XML文件。 */ public class Dom4jHellowWroldDemo1 { @Test public void parsrXMLData() throws Exception { //1.创建一个dom4j的解析器对象 代表整个dom4j框架 SAXReader saxReader = new SAXReader(); //2.把xml文件加载在内存中成为一个Document对象 //Document document = saxReader.read(new File("F:\\JavaCode\\xml_app\\src\\Contacts.xml")); //getResourceAsStream中的/是直接去src下寻找文件 InputStream is=Dom4jHellowWroldDemo1.class.getResourceAsStream("/Contacts.xml"); Document document = saxReader.read(is); //3.获取根元素对象 Element root = document.getRootElement(); System.out.println(root.getName()); //4.拿根元素下的全部子元素对象 (一级) //List<Element> sonEles=root.elements(); List<Element> sonEles=root.elements("contact"); for (Element sonEle : sonEles) { System.out.println(sonEle.getName()); } //拿某个子元素 Element useEil = root.element("user"); System.out.println(useEil.getName()); //默认提取第一个子元素对象 System.out.println("======="); Element contact = root.element("contact"); //获取子元素文本 System.out.println(contact.elementText("name")); System.out.println(contact.elementTextTrim("name")); //根据元素获取属性值 Attribute idAttr = contact.attribute("id"); System.out.println(idAttr.getName()+"-->"+idAttr.getValue()); //直接提取属性值 System.out.println(contact.attributeValue("id")); System.out.println(contact.attributeValue("vip")); //获取当前元素下子元素对象 Element email = contact.element("email"); System.out.println(email.getText()); } }
<?xml version="1.0" encoding="UTF-8"?> <contactList> <contact id="1" vip="true"> <name> 潘金莲 </name> <gender>女</gender> <email>panpan@itcast.cn</email> </contact> <contact id="2" vip="false"> <name>武松</name> <gender>男</gender> <email>wusong@itcast.cn</email> </contact> <contact id="3" vip="false"> <name>武大狼</name> <gender>男</gender> <email>wuda@itcast.cn</email> </contact> <user> </user> </contactList>