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