xml-parsing – SAX和DOM之间有什么区别?
发布时间:2020-12-16 08:19:42 所属栏目:百科 来源:网络整理
导读:我读了一些关于XML解析器的文章,遇到了SAX和DOM。 SAX是基于事件的,DOM是树模型 – 我不明白这些概念之间的差异。 从我的理解,基于事件的意味着某种事件发生在节点。像单击一个特定节点时,它将给出所有的子节点,而不是同时加载所有的节点。但是在DOM解
我读了一些关于XML解析器的文章,遇到了SAX和DOM。
SAX是基于事件的,DOM是树模型 – 我不明白这些概念之间的差异。 从我的理解,基于事件的意味着某种事件发生在节点。像单击一个特定节点时,它将给出所有的子节点,而不是同时加载所有的节点。但是在DOM解析的情况下,它将加载所有节点并创建树模型。 我的理解是正确的吗? 请纠正我如果我错了,或以更简单的方式向我解释基于事件的和树模型。
好,你很近。
在SAX中,当解析XML时触发事件。当解析器解析XML并遇到开始的标签(例如< something>)时,它触发tagStarted事件(事件的实际名称可能不同)。类似地,当在解析(< / something>)时满足标签的结束时,它触发tagEnded。使用SAX解析器意味着您需要处理这些事件并了解每个事件返回的数据。 在DOM中,解析时没有触发任何事件。解析整个XML,并生成并返回DOM树(XML中的节点)。一旦被解析,用户可以导航树以访问先前嵌入在XML中的各种节点中的各种数据。 一般来说,DOM更容易使用,但是在开始使用DOM之前需要解析整个XML。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 正则表达式30分钟入门教程
- 自译: 如何使用服务器端渲染构建快速加载的React apps
- c# – Reflect.Emit动态类型内存溢出
- Swift:预期声明错误将“Label”设置为字符串变量
- objective-c – 通过引用传递布尔值
- ruby-on-rails – Rails:自动包含动作/控制器特定的javasc
- 数组 – 如何编写PowerShell高级函数,可以使用管道对象和对
- 一张图读懂连麦直播(RTMPC Hybrid Engine)
- Cocos2dx 3.4 BabeLua 3.0.1.0 Windows下lua环境配置
- c# – LINQ:给定一个对象列表,创建一个以子对象为键,父对象