XML文档两种解析方式 -- SAX和DOM

在项目开发中需要用到XML技术,这里对XML的两种解析方式做下简单描述。

在针对XML文档的应用编程接口中,最主要的有W3C制定的DOM(Document Object Method,文档对象模型)和由David Megginson领导的SAX(SimpleAPI for XML,用于XML的简单API)[19]。

SAX和DOM在实现过程中,分别侧重于不同的方面以满足不同的应用需求。DOM为开发基于XML的应用系统提供了便利。它通过一种随机访问机制,使得应用程序利用该接口可以在任何时候访问XML文档中的任何一部分数据,也可以对XML文档中的数据进行插入、删除、修改、移动等操作。在DOM中,文档的逻辑结构类似一棵树。文档、文档中的根、元素、元素内容、属性、属性值等都是以对象模型的形式表示的。DOM的优点在于它在内存中保存文档的整个模型。这使得能以任何顺序访问XML元素。然而,对于大型文档来说,这样做可能不方便。因为它可能会用尽内存,或者当系统达到了它的极限时,机器的性能将

会慢下来。

SAX提供了一种对XML文档进行顺序访问的模式,这是一种快速读写XML数据的方式。SAX接口是事件驱动的,当使用SAX分析器对XML文档进行分析时,就会触发一系列事件,并激活相应的事件处理函数,从而完成对XML文档的访问。SAX处理XML的方式与DOM不同。SAX解析器不是将DOM树解析和表现为输出,它是基于事件的,所以在XML被解析时,事件被发送给引擎。SAX可以在文档的开始接收事件,也可以接收文档中的元素。使用这些事件可以构建一种结构。因为SAX没有把XML文档完全地加载到内存中,所以需要的系统资源较少,是一个分析大型XML文档的高效API。缺点是编写SAX比编写DOM复杂,这因为首先必须实现通知接口并维护状态,其次SAX不允许对文档进行随机访问,也没有提供像DOM那样的修改功能。

比较而言,DOM和SAX各有自己的应用场合。DOM适用于处理下面的问题:解析比较小的XML文件;需要对文档进行修改;需要随机对文档进行访问。SAX适于处理下面的问题:对大型文档进行处理;只需要文档的部分内容;只需要从文档中得到特定信息。

海康visionmaster开发笔记10-集成HALCON第三方算子到VM工具箱的方法 海康visionmaster开发笔记10-HALCON第三方算子到VM工具箱的方法 阅读详情

相关推荐

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

XML解析的两种方式:DOM方式和SAX方式

DOM:Document ObjectModel,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。 SAX:Simple API for XML。这种方式不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它。 一、DOM解析:          一次性把xml文档加载成Document树,通过Document对象得到节点对象,通过节点对象访问xml文档内容(

过去_现在_未来 6566

FPS游戏自动枪械识别+压枪(以PUBG为例)

使用Python3.9作为开发环境,实现一个通用的FPS游戏自动检测枪械配件+压枪宏的软件开发思路

weixin_37827742的博客 3万+

XML的两种解析方式Dom和SAX的区别

DOM和SAX是应用中操纵XML文档的两种主要API,它们分别解释如下: DOM,即Document Object Model,中文叫文档对象模型。DOM是W3C定义的标准文档对象模型,是一个与操作系统和编程语言无关的、用于内存存储和操作层次化文档的模型。当按照DOM模型解析X

481

新手必看:如何用T265和ROS实现无人机室内精准定位(附PX4参数配置)

本文详细介绍了如何使用Intel Realsense T265和ROS实现无人机室内精准定位,包括硬件准备、ROS数据流架构设计、PX4参数配置及系统验证。特别针对视觉SLAM技术在室内环境中的应用,提供了从零搭建到进阶优化的全流程解析,适合无人机开发新手快速上手。

weixin_30642561的博客 404

AD9361数字调制入门:从IQ调制原理到动手实现第一个ASK信号(Vivado工程详解)

本文详细介绍了如何使用AD9361射频收发器实现ASK数字调制,从IQ调制原理到Vivado工程实现。通过Verilog代码示例和FPGA架构设计,帮助开发者理解纯逻辑实现数字调制解调的关键技术,特别适合软件无线电(SDR)初学者入门实践。

weixin_29158047的博客 374

DOM解析与SAX解析来读取和修改xml文件

xml

tideseng的博客 1224

ViViT视频分类实战:从Tubelet Embedding到4种Attention变体的保姆级解析

本文深入解析ViViT(Video Vision Transformer)在视频分类中的实战应用,重点介绍Tubelet Embedding技术和4种Attention变体的实现细节。通过对比分析Spatio-Temporal、Factorised Encoder等不同Attention机制的性能特点,提供工程优化策略和Kinetics数据集上的实战示例,帮助开发者掌握这一前沿视频理解技术。

weixin_29292535的博客 386

解析XML的两种方式

解析XML的方式分为两种: 文档对象模型(Document Object Model)即DOM,该解析器为树形解析器,DOM解析器会将XML文档解析为对应的树形结构。 XML简单接口(Simple API for XML) 即SAX,该解析器为流机制解析器,SAX解析器会将读入XML文档中的各个部分作为事件。 由于DOM解析器会将整个XML文档的内容转化为树形结构,故需要消耗大量的内存。其好处在于,我们可以随时查找之前的元素或文本。如果,我们不需要关注已遍历过的文本内容,那么我们就选用SAX解析方式。

qq_35769974的博客 839

LiveReload:释放你的F5,实时预览HTML效果

一、liveReload插件开发背景Web前端开发人员在写页面时,如果修改了HTML or CSS,要想看效果通常的做法就是保存代码就得 Alt+Tab,切换到浏览器(当然,我知道很多开发人员是双屏操作不一定需要切换到浏览器),但是一定要F5刷新才能看自己刚写的代码有没有效果,没有效果就再切换到编辑器下修改,然后再切换到浏览器F5刷新看效果,还没有效果,就再继续修改,如此反复。时间久了,前端自动化...

Char_n的博客 2507

支付宝域名如何加入白名单(扫码老是弹窗)

支付宝扫码之后,遇到非支付宝官方网页,请确认是否继续访问弹窗,问题解决办法。本章教程提供解决办法,亲测有效。

猿小白的博客 9185

xml文档的两种解析方式

1.Dom方式解析xml文档会先解析整个文档,然后才进行处理,这样会占很大的计算机内存。 2.SAX方式是属于变解析xml文档边处理xml文档。 注:早SAX解析xml文档的时候,xml文档中不允许有任何注释,不然会报错, 如--> 接下来写一个SAX的例子及其原理说明:

Mr_li13的博客 803

C#上位机与西门子PLC全链路通信实战教程:数据采集+SQL存储+数据库报表查询+报警历史完整实现

在工业自动化领域,西门子PLC(S7-200Smart/1200/1500)凭借稳定的性能、强大的功能、完善的生态,稳居工业控制器的主流地位;而凭借开发效率高、界面美观、兼容性强、数据库操作便捷的优势,成为工业上位机开发的首选编程语言。二者的组合,是目前制造业、自动化产线、智能仓储、暖通自控等场景的绝对主流方案,也是工业上位机工程师必须吃透的核心技术栈。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1862

XML解析的两种方式DOM和SAX

DOM和SAX W3C制定了一套书写XML分析器的标准接口规范--DOM。 除此之外,XML_DEV邮件列表中的成员根据应用的需求也自发地定义了一套对XML文档进行操作的接口规范--SAX。这两种接口规范各有侧重,互有长短,应用都比较广泛。   下面,我们给出DOM和SAX在应用程序开发过程中所处地位的示意图。从图中可以看出,应用程序不是直接对XML文档进行操作的,而是首先

The Best Or Nothing~ 7173

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

[课堂实践与项目]XML解析的两种方式:DOM和SAX

XML解析主要有两种方式:DOM第三方的解析和Sax官方的解析。 1.DOM解析 1)XML DOM解析包:GDataXMLNode   点击打开链接 2)导入静态库   // libxml includes require that the target Header Search Paths contain // // /usr/include/libxml2 // // and

882

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

XML解析的两种解析方式:DOM和SAX

DOM:(Document Object Model,即文档对象模型),是W3C组织推荐的解析XML的一种方式 SAX:(Simple API for XML)不是官方标准,但他是XML社区事实上的标准,几乎所有的XML解析器都支持它) DOM是先把所有的XML文档读到内存中,然后依次简历Document对象,如下图: 而SAX使逐步往下读取XML的,所有内存消耗小,但是SAX只适合

2447

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

DOM 解析和SAX解析 XML 文档

一、xml的解析方式Dom和SAX区别: DOM:当按 照DOM模型解析XML文档时,就会在内存中构造一个对应的DOM树,它可以用于不同节点之间的遍历。然而,在遍历之前必须先完成DOM树的构造。因此, 在处理规模较大的XML文档时就很耗内存,占用资源较多。尤是只需要操作文档中一小部分时效率很低。DOM的优点在于它在内存中保存文档的整个模型。DOM的基本对象有5个:Document,Node,

yanmei的专栏 1190

C# XML文件操作总结 SAX DOM 解析

去年写过一篇关于C# XML文件操作的两种方式,但是没有给出样例代码,这里再次给出两种操作XML文件的方式,并且包含部分样例代码。 以下两种XML操作方式,不仅只是适合C# 语言进行开发,其实语言也都适用。 原文链接: 点击打开链接 http://blog.csdn.net/weixingstudio/article/details/7026712 1. 解析类型介绍

Work Hard, Play Harder! 7033

sax和dom两种xml解析器的区别

文章目录前言一、dom和sax的区别二、解析xml1. 准备2. dom方式3. sax方式总结 前言 JDK 中内置了 dom 和 sax 两种解析 xml 文件的方式,两者各有利弊,根据场景选用 一、dom和sax的区别 dom方式的特点: 树型解析器,将读入的xml文档转换成树结构对象[Document] 基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中 可以读取xml文件内容,也可以向xml文件中插入数据,修改数据 sax方式的特点: 流机制解析器,在读入xml文档时生成相应的

weixin_42132143的博客 2268

XML两种底层解析机制

在之前的一篇文章中介绍了XML文档的格式规范,语义约束,命名空间等基本内容。我们知道XML文档的一个主要作用就是作为数据传输的工具,那么就涉及到应用程序对XML文档内容的解析。由于XML文档本身具备结构化格式,所以不推荐将其当作普通文件,使用I/O流解析。一般情况下,XML使用DOM模型和SAX两种解析机制。 在解析XML文件的过程中,有几个经常出现的名词概念,笔者发现有的文章博客中或并列或单独...

用博客记录成长的点滴 1586

XML文件解析的两种方式

1.XML解析概述         当将数据存储在XML后,我们就希望通过程序获得XML的内容。如果我们使用Java基础所学习的IO知识是可以完成的。不过,你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题。人们为不同问题提供不同的解析方式,并提交给对应的解析器,方便开发人员操作XML。 2.解析方式、解析器、解析...

菩提小猿的博客 909

SAX和DOM解析XML文档的区别

 在针对XML文档的应用编程接口中,最主要的有W3C制定的DOM(Document Object Method,文档对象模型)和由David Megginson领导的SAX(SimpleAPI for XML,用于XML的简单API)[19]。SAX和DOM在实现过程中,分别侧重于不同的方面以满足不同的应用需求。DOM为开发基于XML的应用系统提供了便利。它通过一种随机访问机制,使得应用程

xuchaofu的专栏 692

【XML】XML解析方式

XML解析方式: dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。sax: (Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。 XML解析器 Crimson、Xerces 、Aelfred2 XML解析开发包 Jaxp、Jdom、dom

柠檬不萌 1503

SAX和DOM的区别以及各自优缺点

SAX和DOM的区别以及各自优缺点 SAX与DOM之间的区别 当你需要处理XML文档时,你的首要选择是使用DOM(文档对象模型)还是使用SAX(用于XML的简单API),即当前使用的两个主要的XML API。你可以使用任何一种(或者在同一时间使用两种)来处理XML文档,然而DOM将文档载入到内存中处理,而SAX则相反,它可以检测一个即将到来的 XML流,由此并不需要所有的XML代码同时载入到内

柚子茶0902 1685

JAVA中xml的DOM和SAX解析

import java.io.IOException; import javax.lang.model.util.AbstractTypeVisitor6; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.p

szw2990234645的博客 374

sax和dom在解析xml文档时有什么区别

当你需要处理XML文档时,你的首要选择是使用DOM(文档对象模型)还是使用SAX(用于XML的简单API),即当前使用的两个主要的XML API。你可以使用任何一种(或者在同一时间使用两种)来处理XML文档,然而DOM将文档载入到内存中处理,而SAX则相反,它可以检测一个即将到来的 XML流,由此并不需要所有的XML代码同时载入到内存中。 选择DOM与SAX,与在一个数据库中的表单与视图之前选择一...

zhupengqq的博客 311
上一篇: Java中对Clone的理解
下一篇: XML的两种模式描述
PengJune
博客等级 码龄21年 9粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值