前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dom4j和jaxp解析工具的

dom4j和jaxp解析工具的

作者头像
全栈程序员站长
发布2022-07-12 17:33:39
2440
发布2022-07-12 17:33:39
举报

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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流中的指针移动

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118575.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档