`

xml解析方法比较

    博客分类:
  • SOA
 
阅读更多

 

(1)DOM解析
	DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取
	和操作文档的任意部分,是W3C的官方标准
	【优点】
		①允许应用程序对数据和结构做出更改。
		②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
	【缺点】
		①通常需要加载整个XML文档来构造层次结构,消耗资源大。
	【解析详解】
		①构建Document对象:
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = bdf.newDocumentBuilder();
			InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
			Document doc = bd.parse(is);
		②遍历DOM对象
			Document:	XML文档对象,由解析器获取
			NodeList:	节点数组
			Node:		节点(包括element、#text)
			Element:	元素,可用于获取属性参数
	(2)SAX(Simple API for XML)解析
	流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法
	完成解析工作,解析XML文档的逻辑需要应用程序完成
	【优势】
		①不需要等待所有数据都被处理,分析就能立即开始。
		②只在读取数据时检查数据,不需要保存在内存中。
		③可以在某个条件得到满足时停止解析,不必解析整个文档。
		④效率和性能较高,能解析大于系统内存的文档。
	【缺点】
		①需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂。
		②单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持XPath。
	【原理】
		简单的说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束时通知事件
		处理函数(回调函数),进行相应处理,直到文档结束
	【事件处理器类型】
		①访问XML DTD:DTDHandler
		②低级访问解析错误:ErrorHandler
		③访问文档内容:ContextHandler
	【DefaultHandler类】
		SAX事件处理程序的默认基类,实现了DTDHandler、ErrorHandler、ContextHandler和EntityResolver接口,通常
		做法是,继承该基类,重写需要的方法,如startDocument()
	【创建SAX解析器】
		SAXParserFactory saxf = SAXParserFactory.newInstance();
		SAXParser sax = saxf.newSAXParser();
	注:关于遍历
		①深度优先遍历(Depthi-First Traserval)
		②广度优先遍历(Width-First Traserval)
	(3)JDOM(Java-based Document Object Model)
	Java特定的文档对象模型。自身不包含解析器,使用SAX
	【优点】
		①使用具体类而不是接口,简化了DOM的API。
		②大量使用了Java集合类,方便了Java开发人员。
	【缺点】
		①没有较好的灵活性。
		②性能较差。
	(4)DOM4J(Document Object Model for Java)
	简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP
	【优点】
		①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
		②支持XPath。
		③有很好的性能。
	【缺点】
		①大量使用了接口,API较为复杂。
	(5)StAX(Streaming API for XML)
	流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性
	【和推式解析相比的优点】
		①在拉式解析中,事件是由解析应用产生的,因此拉式解析中向客户端提供的是解析规则,而不是解析器。
		②同推式解析相比,拉式解析的代码更简单,而且不用那么多库。
		③拉式解析客户端能够一次读取多个XML文件。
		④拉式解析允许你过滤XML文件和跳过解析事件。
	【简介】
		StAX API的实现是使用了Java Web服务开发(JWSDP)1.6,并结合了Sun Java流式XML分析器(SJSXP)-它位于
		javax.xml.stream包中。XMLStreamReader接口用于分析一个XML文档,而XMLStreamWriter接口用于生成一个
		XML文档。XMLEventReader负责使用一个对象事件迭代子分析XML事件-这与XMLStreamReader所使用的光标机制
		形成对照。
分享到:
评论

相关推荐

    易语言 xml解析 易语言 xml解析 教程 带源码

    7. **实际应用**:了解了基本的XML解析方法后,我们可以将其应用到实际项目中,比如读取配置文件、从网络获取XML数据、存储游戏数据等。 8. **源码分析**:教程中提供的源码是学习易语言XML解析的重要资源。通过...

    比较通用的xml解析方法

    本篇文章将详细探讨一种比较通用的XML解析方法,适用于各种编程环境。 在处理XML文件时,我们通常会遇到两种主要的解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到...

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    XML解析器示例

    在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)这个强大的图形化编程环境中,XML解析器是处理和操作XML数据的关键工具。本示例主要展示了如何在LabVIEW中实现XML文件的加载、保存和解析。 首先...

    XML解析框架比较

    本文将深入探讨几种常见的XML解析框架,并对比它们的特点与适用场景。 一、DOM解析器 DOM(Document Object Model)是W3C制定的一种标准,它将XML文档视为一个树形结构,允许开发者通过节点操作来读取和修改XML内容...

    安卓网站交互JSONxmlWebserviceUPnP相关-比较通用的xml解析方法.rar

    本压缩包文件"安卓网站交互JSONxmlWebserviceUPnP相关-比较通用的xml解析方法.rar"主要关注XML解析方法,虽然未提及具体的所有内容,但我们可以根据标签和描述来探讨这些关键知识点。 首先,让我们深入了解一下JSON...

    xml 解析 xml 解析几何

    在本文中,我们将深入探讨XML解析,以及如何在Java中处理XML文档。 XML解析是将XML文档转换为编程语言可以理解和操作的数据结构的过程。解析XML主要有两种方法:DOM(Document Object Model)和SAX(Simple API for...

    比较通用的xml解析方法.zip

    这个压缩包“比较通用的xml解析方法.zip”包含了一些与XML解析相关的资源,如库文件和源码示例,让我们逐一探讨。 1. **DOM4J.jar**: DOM4J 是一个灵活的 Java XML API,它提供了全面的功能,包括文档对象模型...

    C# XML解析方式

    根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...

    XML解析工具

    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...

    xml解析文件的两种方式

    本文将详细介绍XML解析文件的两种主要方式:SAX(Simple API for XML)和DOM(Document Object Model)。 **1. DOM解析** DOM解析方式是将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个树的每个...

    安卓Android源码——比较通用的xml解析方法.rar

    本资料包“安卓Android源码——比较通用的xml解析方法”将深入探讨在Android平台上解析XML的多种方法。 1. DOM解析器(Document Object Model) DOM解析器将整个XML文档加载到内存中,创建一个树形结构,便于遍历和...

    4种解析XML方法实例

    本教程将详细介绍四种常见的XML解析方法,以帮助你更好地理解和处理XML数据。 1. DOM解析器(Document Object Model) DOM解析器将整个XML文档加载到内存中,创建一个树形结构,允许开发者通过节点操作来访问和修改...

    XML解析和生成工具

    本文将深入探讨XML解析和生成工具的相关知识,以及如何利用提供的`Markup.cpp`和`Markup.h`文件进行操作。 XML的结构: XML文档由一系列元素构成,每个元素都有一个开始标签和结束标签,如 `<tag>` 和 `</tag>`。...

    xml三种解析方法实现

    XML(eXtensible Markup Language)是一种用于存储和传输...在项目中,选择合适的XML解析方法至关重要,因为它直接影响到程序的性能和可维护性。了解并掌握这三种解析方式,可以帮助开发者针对不同的场景做出最佳决策。

    iphone开发之xml解析

    了解了基本的XML解析方法后,可以深入学习如何使用`NSXMLParser`或第三方库进行解析操作,例如设置解析器代理、处理XML节点事件、构建数据模型等。同时,掌握如何处理XML中的命名空间、实体引用、属性等特殊元素也是...

    XML解析器,用于解析XML文件

    理解和熟练使用XML解析器是任何IT专业人士的必备技能之一,无论是在移动应用、Web服务还是桌面应用程序中,XML解析都发挥着关键作用。了解和掌握TinyXML这样的解析库,可以帮助开发者更高效地处理XML数据。

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xml

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...

    三种解析XML的方法

    在Java中,有三种主要的XML解析方法:DOM(Document Object Model)、SAX(Simple API for XML)和dom4j。每种方法都有其特点和适用场景,下面将详细阐述这三种解析方法。 1. DOM解析: DOM解析器将整个XML文档加载...

    xml各种解析方法

    ### XML解析方法详解 #### 一、概述 随着互联网技术和数据交换需求的不断增加,XML(Extensible Markup Language,可扩展标记语言)作为一种重要的数据交换格式,被广泛应用于各种场景之中。XML不仅支持自定义标签...

Global site tag (gtag.js) - Google Analytics