加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

四种不同的XML解析方法

发布时间:2020-12-16 09:35:37 所属栏目:百科 来源:网络整理
导读:四种不同的XML解析方法: 1 DOM 工厂类:由抽象类javax.xml.parser.DocumentBuilderFactory.newInstance()获取实现工厂类 ACM工厂类: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl(ie3rdpartylibs.jar/META-INF/services/javax.xml.parser.Document

四种不同的XML解析方法:

1 DOM

工厂类:由抽象类javax.xml.parser.DocumentBuilderFactory.newInstance()获取实现工厂类

ACM工厂类:

org.apache.xerces.jaxp.DocumentBuilderFactoryImpl(ie3rdpartylibs.jar/META-INF/services/javax.xml.parser.DocumentBuilderFactory)

JRE默认类:com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

解析结果:

org.w3c.dom.Document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(...)

2 SAX

工厂类:由抽象类javax.xml.parsers.SAXParserFactory.newInstance()获取实现工厂类

ACM工厂类:

org.apache.xerces.jaxp.SAXParserFactoryImpl(ie3rdpartylibs.jar/META-INF/services/javax.xml.parser.SAXParserFactory)

JRE默认类:com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl

解析过程:SAXParserFactory.newInstance().newSAXParser().parse(...)

3 JDOM - 解析器使用Xerces/Crimson

SAX解析器:new org.jdom.input.SAXBuilder()

解析结果:org.jdom.Document = SAXBuilder.build(...)

DOM互换:

org.jdom.Document = org.jdom.input.DOMBuilder.build(org.w3c.dom.Document),org.w3c.dom.Document = org.jdom.output.DOMOutputer.output(org.jdom.Document)

4 DOM4J - 解析器使用Xerces/Crimson/Alfred2

SAX解析器:new org.dom4j.io.SAXReader()

解析结果:org.dom4j.Document = SAXReader.read(...)

DOM互换:

org.dom4j.Document = org.dom4j.io.DOMReader.read(org.w3c.dom.Document),org.w3c.dom.Document = org.dom4j.io.DOMWriter.write(org.dom4j.Document)

综合评价:

1. DOM和SAX只是两种不同的解析XML的方式,而不是具体的解析工具,DOM在内存中构建一个完整的XML树,对资源要求高;而SAX是基于XML事件的处理方式,对资源要求低。

2. DOM4J是基于JAVA实现的一种XML解析和处理工具。它性能较好,默认应优先采用

3. JDOM也是基于JAVA实现的一种XML解析和处理工具。性能不佳,10M大小以内的文件可以考虑使用。

4. JDOM和DOM4J既能进行XML文件或流解析成DOCUMENT,又能将DOCUMENT保存为XML文件或流,但是它们的Document是自定义的,因此存在不可移植性

5. 如果应用程序只使用DOM、SAX并且符合JAXP的规范接口,则理论上说底层的XML解析器是可以切换的,具有最大的可移植性

6. 解析器有Xerces,Crimson,Alfred2等,它们符合JAXP规范,并且做的是具体的XML解析处理工作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读