SAXReader解析XML文件數據


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM