解析器相关名字解释及理解

李奥瑞克 2013-04-14 10:56:39
分享个人学习解析器的总结
JDOM和DOM4J
JDOM和DOM4J都是针对Java解析XML设计的方式,它们与DOM相似。
但DOM不是只针对Java,DOM是跨语言的,DOM在Javascript中也可以使用。
而JDOM和DOM4J都是专业为Java而设计的,使用JDOM和DOM4J,对Java程序员而言会更加方便。

====================
DOM SAX,跨语言的,不是给java制定的两种规范!

DOM -- w3c提出的
SAX -- 草民提出的(很好的规范,大家都去使用它)

在java中规范都是一组interface!
interface在java中不能用,需要实现类!

xercesImpl.jar -- 是DOM和SAX的java实现,它是apache的,不要钱!
DOM -- 解析是有结果的! Document就是结果
SAX -- 解析是没结果的!没结果

SAXReader reader = new ...
Document doc = reader.read("xxx");//reader.read()方法就是解析xml文件


DOM -- 优点:节点与节点之间有关联关系(有结构)!缺点:(如果xml文件太大,都加发到内存,内存受不了)
SAX -- 优点:不占内存,缺点:(没结构)
====================
JAXP -- java自己的东西!
  JAXP本身不是解析器(不是Xerces),也不是解析方式(DOM或SAX),
它只是让用户在使用DOM或SAX解析器时不依赖特点的解析器。
它的作用就是不用去找特定厂商提供的实现类,由JAXP去通过配置文件去找。
我们以后需要使用DOM和SAX时,使用JAXP

JAXP --方法(1,2老师说不用理解)
3 -- 查找classpath中的解析器!刚刚我们把xerces.jar放到classpath中,所以JAXP找到了它!
4 -- 当第3步找不到时,才会用第四步!用Java自己的xerces!

====================

DOM SAX,JDOM和DOM4J之间的不同,
因为DOM和SAX解析的document的返回的是Node节点是通用的,不适合JAVA,
所以出现了专门为JAVA服务的解析方式:JDOM和DOM4J,不过他们底层其实还是用的SAX的解析器
...全文
203 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
李奥瑞克 2013-04-14
  • 打赏
  • 举报
回复
大家看看有没有帮助,发现错误,请及时给予提醒,感激不尽.

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧