Java DocumentHelper与SAXReader对xml文档的解析

XML文件解析

XML的解析方式分为四种:
1、DOM解析;
2、SAX解析;
3、JDOM解析;
4、DOM4J解析。
其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。

  • DOM(Document Object Model)解析:是基于 XML 文档树结构的解析,整颗树加载到内存中,耗内存,可多次获取。
  • SAX(Simple API for XML)解析:是基于事件流的解析。效率高,数据量小,仅一次获取 。
  • DOM4J解析:融合了Dom和Sax的优点,即能保证效率,同时也可多次获取。著名的开发框架Spring和Hibernate都使用了Dom4j的功能。
    今天我们就来着重讲一讲用的最多的一种,也就是第四种DOM4J解析。在此之前我们需要导入两个jar包来帮助我们完成代码。
    分别是dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar;
    解析xml文档有两种方式

第一种:DocumentHelper

        //获取文档树对象 doc
        Document doc = DocumentHelper.createDocument();
        //创建根节点
        Element root = doc.addElement("动物");
        //创建子节点
        Element e1 = root.addElement("大象");
        Element e2 = e1.addElement("名字");
        Element e3 = e1.addElement("年龄");
        Element e4 = e1.addElement("体重");
        //子节点文本
        e2.setText("马娇娇");
        e3.setText("21");
        e4.setText("1.5");
        //当写好文档树之后需要写入xml文档中,若无xml文档,写好xml文档路径,会在此路径下自动生成一个新的xml文档
        XMLWriter writer = new XMLWriter(new FileOutputStream(xml文件路径), OutputFormat.createPrettyPrint());
        //写入
        writer.write(doc);
        //关闭刷新
        writer.close();

那么我们可以看一下相对应目录下的xml文档

<?xml version="1.0" encoding="UTF-8"?>

<动物>
<大象>
  <名字>马娇娇</名字>
  <年龄>21</年龄>
  <体重>1.5</体重>
</大象>
</动物>

第二种:SAXReader
使用SAXReader解析器获取根节点以及所有的子节点。

 //获取解析器
        SAXReader sr = new SAXReader();
        //获取xml文档对象
        Document doc = sr.read("D:\\workspace\\day22-java22\\src\\homework\\xml\\animals1.xml");
        //查询根节点
        Element root = doc.getRootElement();
        //查询一级子节点
        List <Element>list1 = root.elements();
        //查询子节点并返回一个list集合
        //遍历获取一级子节点
        for (Element e: list1
             ) {
            System.out.println(e.getName()+"-->"+e.getText());
            List <Element>list = e.elements();
            //获取二级子节点及其文本值
            for (Element e2:list
                 ) {
                System.out.println(e2.getName()+"-->"+e2.getText());
            }
        }

控制台输出:

大象-->
名字-->马娇娇
年龄-->21
体重-->1.5

我们在查询xml文档的同时可以对其进行增删改的操作,感兴趣的可以去试一试。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值