xml有四种解析器
1、
DOM
官方 W3C 标准,把xml文档转化为一个包含其内容的树,并可以对树进行遍历。
优点:编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。
缺点:由于使用 DOM 解析器的时候需要处理整个 XML 文档,,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。
适用于:由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。
2、
SAX
采用基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。
优点:对内存的要求比较低;
缺点:编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。
适用于:让开发人员自己来决定所要处理的tag,特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。
3、
JDOM
简化与 XML 的交互并且比使用 DOM 实现更快。
JDOM 自身不包含解析器。它通常使用 SAX2 解析器来解析和验证输入 XML 文档。
JDOM 与 DOM 主要有两方面不同:
首先,JDOM 仅使用具体类而不使用接口。这在某些方面简化了 API,但是也限制了灵活性;
第二,API 大量使用了 Collections 类,简化了那些已经熟悉这些类的 Java 开发者的使用;
4、
DOM4J
DOM4J 使用接口和抽象基本类方法;
DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J.
总结:
a、JDOM 和 DOM 在性能测试时表现不佳,在测试 10M 文档时内存溢出,在小文档情况下还值得考虑使用 DOM 和 JDOM;
b、DOM 仍是一个非常好的选择,DOM 实现广泛应用于多种编程语言,它还是许多其它与 XML 相关的标准的基础,因为它正式获得 W3C 推荐,所以在某些类型的项目中可能也需要它(如在 javascript 中使用 DOM)。
c、SAX表现较好,这要依赖于它特定的解析方式;
d、DOM4J是最好的,目前许多开源项目中大量采用 DOM4J,例如大名鼎鼎的 Hibernate 也用 DOM4J 来读取 XML 配置文件。如果不考虑可移植性,那就采用DOM4J吧!
分享到:
相关推荐
2. **SAX解析**:除了DOM,dom4j还支持SAX(Simple API for XML)解析器,适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 3. **XPath支持**:dom4j内置了XPath引擎,可以使用XPath表达式方便地定位...
### 用C++语言实现XML文件解析的一种方案 #### 概述 随着互联网技术的不断发展,XML(可扩展标记语言)作为一种重要的数据交换格式,在各领域中的应用日益广泛。XML以其良好的可读性和开放性成为了数据共享的标准...
1. **XML解析**:TinyXML2通过`XMLDocument`类来表示整个XML文档,你可以使用`LoadFile()`或`Parse()`方法加载XML文件或内存中的XML字符串。解析完成后,文档的结构被映射为一系列的节点,包括元素(XMLElement)、...
XML文件解析工具类
本文将深入探讨使用C语言编写的XML文件解析源码,并讲解如何实现XML文件的基本操作,如查找、增加和删除节点。 在C语言中处理XML文件通常涉及到以下几个关键步骤: 1. **内存管理**:由于C语言没有内置的高级数据...
XML 文件解析问题 XML 文件解析是指将 XML 文件转换为可被计算机理解和处理的格式。XML 文件解析问题是指在解析 XML 文件时遇到的问题,例如解析速度慢、内存占用高、解析错误等。 在 XML 文件解析中,主要有两种...
Tinyxml 文件解析经典例子 TinyXML 是一个开源的解析 XML 的解析库,能够用于 C++,能够在 Windows 或 Linux 中编译。这个解析库的模型通过解析 XML 文件,然后在内存中生成 DOM 模型,从而让我们很方便的遍历这棵...
在IT行业中,XML文件解析是一项基础且重要的技能,尤其在数据交换、配置文件、Web服务等领域有着广泛的应用。本专题将深入探讨XML文件解析的相关知识点。 一、XML基本结构 XML文档由元素(Elements)、属性...
这个"xml.rar"压缩包包含了一系列与XML文档解析相关的源代码文件,对于初学者来说,是理解XML解析机制的一个很好的实例。 1. **XML文档结构**: XML文档由一系列元素组成,每个元素通过开始标签 `<tag>` 和结束...
C++作为一款强大的编程语言,虽然原生并不支持XML处理,但可以通过第三方库或者自定义类来实现XML文件的解析和读取。"VC XML文件解析类"就是这样的一个实现,它提供了C++程序员处理XML文件的能力。 首先,我们来看`...
XmlPullParser是Android系统提供的一种解析XML文件的API,它是一种基于事件驱动的解析方式,能够高效、节省资源地处理XML文档。在这个“XmlPullParser解析Xml文件解析demo”中,我们将探讨如何利用XmlPullParser来...
XML文件解析工厂则是处理XML文档的核心工具,它简化了对XML数据的操作,使得开发者能够更加高效地读取、写入和处理XML内容。 在Java中,XML文件解析主要有DOM(Document Object Model)、SAX(Simple API for XML)...
TinyXML和TinyXML2是两个小型、轻量级的C++库,专门用于解析和操作XML文件。它们提供了简单的API,使得开发者能够方便地读取、修改和创建XML文档。 TinyXML库是最初的版本,它为XML解析提供了一个易于使用的接口。 ...
本资源提供了基于C++的XML文档解析器的源代码,涵盖了读取、遍历、查找、插入和保存等基本功能,对于学习和理解XML解析原理以及C++编程技巧具有很高的参考价值。 首先,XML文档的基本结构包括元素(Element)、属性...
"XML文件解析编辑小工具",如firstobject xml editor 2.4,是一款专为XML文档设计的轻量级编辑器,提供了对XML文件的深度解析和编辑功能。 这款工具的特色在于其绿色小巧的特性,意味着它无需安装即可使用,占用...
QDomDocument提供了一个完整的DOM(文档对象模型)解析器,它将整个XML文件加载到内存中,形成一棵树形结构,便于遍历和操作。而QXmlStreamReader则采用事件驱动的方式,逐行读取XML文件,适用于处理大文件或需要低...
在Java中,有多种解析XML文件的方式,包括DOM (Document Object Model)、SAX (Simple API for XML) 和 DOM4J。这些方法各有优势和局限性,选择哪一种取决于具体的应用场景和需求。 #### 二、DOM 解析方式 DOM 解析...
pomxml文件解析pomxml文件解析pomxml文件解析
对于XML文件的解析,掌握几种常用的方法是至关重要的。根据给定文件的信息,我们将深入探讨四种最常用的XML文件解析技术:DOM(Document Object Model)、SAX(Simple API for XML)、STAX(Streaming API for XML)...
- 内存消耗大:对于大型XML文件,DOM可能会消耗大量内存,因为它需要一次性加载整个文档。 - 性能问题:由于需要构建完整的DOM树,解析速度相对较慢。 **2. SAX解析** SAX(Simple API for XML)是一种事件驱动的...