XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其

本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且

可以为 XML 承载的数据定义类型,约束能力较之 DTD 更强大。对 XML 的解析主

要有 DOM(文档对象模型,Document Object Model)、SAX(Simple API for

XML)和 StAX(Java 6 中引入的新的解析 XML 的方式,Streaming API for XML),

第 295 页 共 485 页其中 DOM 处理大型文件时其性能下降的非常厉害,这个问题是由 DOM 树结构占

用的内存较多造成的,而且 DOM 解析方式必须在解析文件之前把整个文档装入内

存,适合对 XML 的随机访问(典型的用空间换取时间的策略);SAX 是事件驱动

型的 XML 解析方式,它顺序读取 XML 文件,不需要一次全部装载整个文件。当

遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,

用户通过事件回调代码来处理 XML 文件,适合对 XML 的顺序访问;顾名思义,

StAX 把重点放在流上,实际上 StAX 与其他解析方式的本质区别就在于应用程序

能够把 XML 作为一个事件流来处理。将 XML 作为一组事件来处理的想法并不新

颖(SAX 就是这样做的),但不同之处在于 StAX 允许应用程序代码把这些事件逐

个拉出来,而不用提供在解析器方便时从解析器中接收事件的处理程序。

XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?的更多相关文章

  1. XML文档形式&JAVA抽象类和接口的区别&拦截器过滤器区别

    XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? a: 两种形式 dtd schemab: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发 ...

  2. Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术

    一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...

  3. python开发_xml.dom_解析XML文档_完整版_博主推荐

    在阅读之前,你需要了解一些xml.dom的一些理论知识,在这里你可以对xml.dom有一定的了解,如果你阅读完之后. 下面是我做的demo 运行效果: 解析的XML文件位置:c:\\test\\hon ...

  4. Java解析XML文档——dom解析xml

    一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object M ...

  5. Java 解析XML的几种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已. 基本的解析方式 ...

  6. 详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

  7. 【Java】详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...

  8. Java学习之路:详细解释Java解析XML四种方法

    XML如今已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 对于XML本身的语法知识与技术细节,须要阅读相关的技术文献,这里面包含的内容有DO ...

  9. [转]详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

随机推荐

  1. ASP.NET Core 6框架揭秘实例演示[10]:Options基本编程模式

    依赖注入使我们可以将依赖的功能定义成服务,最终以一种松耦合的形式注入消费该功能的组件或者服务中.除了可以采用依赖注入的形式消费承载某种功能的服务,还可以采用相同的方式消费承载配置数据的Options对 ...

  2. Qunar风控安全产品的探索之路

    李建威.2017年7月以春招实习生的身份加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码.设备指纹以及环境检测等服务.目前主要负责反爬风控的基础安全产品建设.对各类作弊原理感 ...

  3. [题解]UVA10129 Play on Words

    链接:http://vjudge.net/problem/viewProblem.action?id=19492 描述:单词接龙 思路:求欧拉回路或欧拉道路. 首先建图,以字母为节点,单词为边.因为单 ...

  4. 医院大数据平台建设_构建医院智能BI平台的关键技术

    在新技术层出不穷的当下,世界各地的组织正在以闪电般的速度变化和进化,以便在新技术可用时加以利用.其中目前最具活力的一个领域是商业智能(BI).想一想,你可能已经习惯以每周或每月IT或数据科学家交付给你 ...

  5. Delegate 委托细说

    目录 委托的申明 委托的赋值 委托实例方法的使用C#Invoke\BeginInvoke\Endinoke  系统自带的委托Action.Action<T>.Func<T>.P ...

  6. 用RecyclerView实现水平滚动和网格视图

    建立RecyclerViewActivity.java文件 1 public class RecyclerViewActivity extends AppCompatActivity { 2 priv ...

  7. Qt:打印输出到控制台,类似C++的cout

    1. #include<qDebug> 2. qDebug<<"Hello,world!"; 补充,如果不是控制台文件,比如是窗口应用程序,需要在pro文件 ...

  8. 《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)

    1.简介 前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错.本文介绍如何新建一个自定义的类库来解决这个元素同步问题.这样, ...

  9. JZ-063-数据流中的中位数

    数据流中的中位数 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两 ...

  10. LeetCode-290-单词规律

    单词规律 题目描述:给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非 ...