XML解析

XML解析方式 各种解析XML方式对比:

解析方式 介绍 优点 缺点
DOM DOM是基于树的结构,通常需要加载整文档和构造DOM树,
然后才能开始工作
1.由于整棵树在内存中,可以对xml文档随机访问
2.可以对xml文档进行修改操作
3.较sax,dom使用也更简单。
1.整个文档必须一次性解析完
2.由于整个文档都需要载入内存,大文档成本高
SAX SAX类似流媒体,它基于事件驱动的,因此无需将整个文档载入内存,
使用者只需要监听自己感兴趣的事件即可。
1.无需将整个xml文档载入内存,因此消耗内存少
2.可以注册多个ContentHandler
1.不能随机的访问xml中的节点
2.不能修改文档
JDOM JDOM是纯Java的处理XML的API,其API中大量使用Collections类 1.DOM方式的优点
2.具有SAX的Java规则
1.整个文档必须一次性解析完
2.由于整个文档都需要载入内存,对于大文档成本高
DOM4J 这4中xml解析方式中,最优秀的一个,集易用和性能于一身。
文章参考自:https://juejin.im/post/5a30dafe6fb9a045031013c4
在Spring源码中,使用的是SAX解析方式,需要借助xpath来获取指定命名空间的元素。
XML中DTD,XSD的区别与应用 1.DTD(Documnet Type Definition)
DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。
一个 DTD文档包含:
元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。 DTD和XSD相比:DTD 是使用非 XML 语法编写的。 DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
2.XSD(XML Schemas Definition)
XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。 可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。 一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认 和固定值。
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
XML Schema的优点:
XML Schema基于XML,没有专门的语法
XML Schema可以象其他XML文件一样解析和处理
XML Schema比DTD提供了更丰富的数据类型.
XML Schema提供可扩充的数据模型。
XML Schema支持综合命名空间
XML Schema支持属性组。
【XML解析】参考文章:https://www.jianshu.com/p/13b205ba2175

    推荐阅读