dom4j文件解析

java解析xml常用的两种方式,dom4j和sax,这两种有什么优缺点和区别呢?

一:dom4j : 性能优异,现在主流的框架如hibernate就在用,功能丰富,程序员操作起来比较简便,但是这种方式是一次性将文件加载到内存,对内存的消耗较大,如果xml文件很大,可能会影响到性能甚至内存溢出。

二:sax:性能优异,但是采用事件驱动方式解析,通俗理解可以认为从上至下逐步解析,当遇见元素开始,文本,元素结束时响应事件,编码较dom4j复杂,并且不是持久的,如果事件过后没有保存数据,就会丢失,但相对对内存的消耗较小。

所以,如果不是特别大的xml文件需要解析,建议使用dom4j方式进行解析,下面简单做几个常用的使用dom4j操作xml文件的例子:

1.把一个xml文件理解成树形结构,采用dom4j一次行加载,把整个树理解为一个document,首先获得document,以后的操作都是以document为基础进行操作。

2.本次用例:首先理解xml格式,本例有一个根节点custom,根节点下面有两个子节点,first和second,然后每个子节点下面还有一些节点。


3:获取根节点,document作为整棵树,可以操作的方法很多,请自行试试看,这里只举例说明:


4:获取到了根节点,那我们再根据根节点获取下面的两个子节点吧,节点在dom4j里理解为element,可以有很多种方式获取节点:


5:注意我们的源文件,where节点里面有两个name节点,那么怎么获取呢,注意到,name节点里有个属性叫id,可以根据id获取相同名字节点的不同element,text是一个节点间的数据,如果有多个相同名字同级节点,如果采用之前的指定名字获取节点,默认获取的是第一个哦,想要获取所有,使用elements吧:


这样我们就获得了想要的那个节点,可是,这是通过获取所有然后遍历对比,是不是太麻烦了,是的,其实完全可以根据id属性一步到位~那就是xpath技术,咳咳,同样创建节点,添加属性的方法都很通俗易懂,addElement,addAttribute等等,快去试一试吧,嘿嘿。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值