關於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