码迷,mamicode.com
首页 > 其他好文 > 详细

dom4j和jaxp解析工具的

时间:2014-06-30 19:30:24      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:style   color   文件   数据   art   rgb   

dom4j解析中的几个对象

node

    --branch

    --document 

    --element

    --commment 

    --attribute

    --text

branch

    --document

    --element

jaxp解析中的几个对象

node

    --document

    --element

    --commment

    --attr

    --text


dom4j解析

中所有对象都是node对象的子节点,也就是说它把说有对象都单独分离出来看成一个对象,而branch是一个对常用节点的封装和关联,如Element对象就包含了有attribute对象和text对象,而document对象就封装了所有节点对象

jaxp的dom解析

jaxp的dom解析方式没有branch节点,没有将各个节点进行封装,所有操作的都是node节点;

    而且因为节点间没有关联属性,所以在创建节点后需要进行关联,删除节点时需要找父节点

    细节:node的节点没有获得attribute的方法,只有Element才有获得attribute的方法

dom4j解析,jaxp的dom解析的共同点

1.通过根据条件查询后的结果都是一个list集合

2.修改text或textContent时既可以用Node也可以用Element


xml文档解析方式有两种dom和sax,常用开发工具有两种jaxp,dom4j

jaxp:将两种解析方法分开了,dom解析和sax解析,sax解析方法没有写方法

dom4j:把两种解析方式结合起来,取文件时采用sax解析,写文件时采用dom解析,继承了两种解析方式的优点


关于sax解析:

sax解析其实也是把文档加载进内存中,但是这个缓存区只有3M左右的大小(可以用一个大文档,然后打印characters方法中的start值观察),如果文档很小,全部加载进内存,如果文档很大,缓存区慢后会自动清空缓存区,继续加载后续数据,这个缓存数组就是characters()方法参数列表中的ch。

也就是说,如果要读取一个小文档,只需要复写这一个方法就可以了,然后将字符数组转成字符串打印就可以了,或者根据角标取响应的数据。

public void characters(char[] ch, int start, int length){

    System.out.println(new String(ch,10,2));

}

然后文档的读取其实就相当于IO流中的指针移动

dom4j和jaxp解析工具的,布布扣,bubuko.com

dom4j和jaxp解析工具的

标签:style   color   文件   数据   art   rgb   

原文地址:http://blog.csdn.net/xlmine/article/details/35825563

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!