Dom4j读取xml报空指针错误

项目场景:

测试dom4j解析xml


问题描述:

在测试dom4j解析下面xml文件时会报空指针异常
xml代码:

<?xml version="1.0" encoding="utf-8" ?>
<!--
        <?xml version="1.0" encoding="utf-8" ?>
        这句话就是xml文件的声明
        version="1.0" -表示xml的版本
        encoding="utf-8" -表示xml文件的编码
-->
<books>                <!--books标签是多本图书-->
    <book sn="SN12323"> <!--book标签是一本图书 and  SN 是指图书版本号-->
        <name>时间简史</name>
        <author>霍金</author>
        <price>100.00</price>
    </book>
    <book sn="SN12322"> <!--book标签是一本图书 and  SN 是指图书版本号-->
        <name><![CDATA[<<黑马程序员>>]]></name>
        <author>小刘</author>
        <price>999.00</price>
    </book>
 <book sn="SN13323" name="从你的全世界路过" author="小张" price="19.00"/>  
</books>
 @Test
    //读取books.xml文件生成Book类
    public void test2() throws Exception {
        //1、读取books.xml文件,获取document对象
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("src/books.xml");
        //2、通过document对象获取根元素
        Element rootElement = document.getRootElement();
        System.out.println(rootElement);
        //3、通过根元素获取book的标签对象--根据返回元素个数不同-element()返回一个、elements()返回多个
        List<Element> books = rootElement.elements("book");
        //4、遍历,处理每个book标签转换为Book类
        for (Element book : books) {
            //asXML()把标签对象,转换为标签字符串--除了父标签都原样输出

            //还可以取子元素
            Element nameElement = book.element("name");

            System.out.println(nameElement.asXML());
        }
    }


原因分析:

多写了一个没有任何属性的标签,导致在循环的时候读不到东西


解决方案:

将xml文件中的第三个book标签删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值