XML实用教程第6章

时间:2026-01-20

《XML实用教程》 第6章基于DOM的解析器Power point 制作:耿祥义 张跃平配合< XML实用教程>例子源代码一起使用

2013-3-11

第6章 导读本章主要内容 初识DOM解析器 节点类型 Document节点 Element节点 Text节点 CDATASection节点 Attr节点 DocumentType节点 处理空白 使用DOM生成XML文件 难点 使用DOM生成XML文件2013-3-11 2

概述XML解析器是XML和应用程序之间的一个 软件组织,为应用程序从XML文件中解析出 所需要的数据。 有两种类型的解析器:基于DOM的解析 器和基于事件的解析器,本章讲述基于DOM 的解析器,下一章讲述基于事件的解析器 (SAX)。

2013-3-11

§6.1 初识DOM解析器

DOM(Document Object Model, 文 档 对 象 模 型 ) 是W3C制定的一套规范标准,各种语言可 以按着DOM规范给出解析XML文件的解析器。 Sun公司发布的JDK1.4的后续版本中提供 了 解 析 XML 文 件 的 API(Java API for XML Parsing,JAXP)。

2013-3-11

§6.1.1 创建DOM解析器的步骤_1在JAXP(Java API for XML Parsing,JAXP)中,DOM解析器是 DocumentBuilder类的一个实例,该实例由DocumentBuilderFactory负责 创建。步骤有3步。

1.使用javax.xml.parsers包中的DocumentBuilderFactory类调用 其类方法newInstance()实例化一个DocumentBuilderFactory对象DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

2.factory 对 象 调 用 newDocumentBuilder() 方 法 返 回 一 个 DocumentBuilder 对 象 ( DocumentBuilder 类 在 javax.xml.parsers 包中) domParser(称做DOM解析器),例如:DocumentBuilder domParser=factory.newDocumentBuilder();

3.domParser对象调用public Document parse(File f)方法解析参 数f指定的XML文件,该方法返回的对象是实现了Document接口的一 个实例(Document接口在org.w3c.dom包中),例如:Document document=domParser.parse(new File("student.xml")) ;2013-3-11 5

§6.1.1 创建DOM解析器的步骤_2DOM解析器在内存中建立和XML文件相对应的树形 结构数据。 应用程序只要分析内存中的树形结构数据,就可以 获得XML文件中的各种数据了。

2013-3-11

§6.1.2 Doucument对象的结构在 步 骤 3 中 , DOM 解 析 器 负 责 在 内 存 中 建 立 Document 对 象 , 即 调 用 parse 方 法 返 回 一 个 实 现 Document 接 口 的 对 象 , 简 称 Document 对 象 。 也 称 Document 对 象 为 Document 节 点 。 应 用 程 序 可 以 从 Document节点的子孙节点中获取整个XML文件中数据 的细节。 Document节点是“树”的根节点,该“树”由实现 了Node接口的类的实例所组成,XML文件中的标记都 和Document节点的某个Node子节点相对应。例题6-1 p117

2013-3-11

§6.1.2

example6_1.xml文件对应的Document节点

2013-3-11

§6.2 节点的类型§6.2.1 Node接口

Do

ucumen接口也是Node接口的子接口,也 就是说,parse方法将整个被解析的XML文件 封装成一个节点返回(XML文件和内存中的 Document节点相对应),并且该节点和它的子 节点组成树形结构数据。因此,应用程序可以 从Document节点的子孙节点中获取整个XML 文件中数据的细节。2013-3-11 9

§6.2.2 Node 接口的常用方法◆short getNodeType()

该方法返回一个表示节点类型的常量(Node接口规定的常 量值),例如,对于Element节点,getNodeType()方法返回的值为Node.ELEMENT_NODE ◆ NodeList getChildNodes()

返回一个由当前节点的所有子节点组成的NodeList对象。◆ Node getFirstChild()

返回当前节点的第一个子节点。◆ Node getLastChild()

返回当前节点的最后一个子节点。◆ NodeList getTextContent()

返回当前节点及所有子孙节点中的文本内容。

2013-3-11

§6.2.3 节点的子孙关系为了解析规范的XML文件,DOM规范规定了各种类型节点之 间可以形成的子孙关系,比如,Document节点有且仅有一个 Element节点,也可以有一个DocumentType节点 (规范的XML文 件有且仅有一个根标记,也可以有一个与其关联的DTD文件),Element 节点可以有Element子节点和Text子节点(规范的XML文件中的标记 可以有子标记和文本)。

2013-3-11

§6.2.4使用递归方法输出节点中的数据

节点调用getNodeType()方法返回一个表示节 点类型的常量(Node接口规定的常量值),因 此我们可以通过判断节点的类型来输出和节点 相关的数据,比如当节点类型的Element节点时, 就输出节点的名字,当节点是Text节点时就输 出节点中的数据等。例题6-2 p120

2013-3-11

§6.3 Document节点解析器的parse方法将整个被解析的XML文件封 装成一个Document节点返回,应用程序可以从该节点 的子孙节点中获取整个XML文件中数据的细节。 Document 节 点 的 两 个 直 接 子 节 点 的 类 型 分 别 是 DocumentType 类 型 和 Element 类 型 , 其 中 的 DocumentType节点对应着XML文件所关联的DTD文 件,通过进一步获取该节点子孙节点来分析DTDL文 件中的数据;而其中的Element类型节点对应着XML 文件的根节点,通过进一步获取该Element类型节点 子孙节点来分析XML文件中的数据。

2013-3-11

§6.4 Element节点Element节点是Document节点的最重要的子孙节点,因为被 解析的XML文件的标记对应着这样类型的节点。表示Element节 点的常量是Node.ELEMENT_NODE,一个节点用 short getNodeType() 方法返回的值如果等于 Node.ELEMENT_NODE, 那么该节点就是Element节点。Element节点经常使用下列方法获取和该节点相关的信

Ø Ø Ø

String getTagName …… 此处隐藏:4161字,全部文档内容请下载后查看。喜欢就下载吧 ……

XML实用教程第6章.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219