You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document 对象代表整个 XML 文档,所有其他的Node都以一定的顺序包含在 Document 对象之内,排列成一个树形结构,可以通过遍历这棵“树”来得到 XML 文档的所有内容。它也是对 XML 文档进行操作的起点,人们总是先通过解析XML源文件而得到一个 Document 对象,然后再来执行后续的操作。
(题图:wikipedia.org)
一、XML简介
特点:
作用:
二、XML文档结构
三、XML标签
示例:
<元素名属性名=“属性值”>元素内容</元素名>
语法:
四、XML编写注意事项
标签编写注意事项:
五、转义符
XML中的转义符列表:
当元素中出现很多特殊字符时,可以使用 CDATA 节,如:
六、XML命名空间
语法:
示例:
属性 命名空间:除非带有前缀,否则属性属于它们的元素的命名空间。
示例:
七、XML解析器(XML验证)
7.1 解析器类型:
DTD 是 Document Type Definition 的缩写,即文档类型定义,DTD 用来描述 XML 文档的结构。
XML Schema 可以对 XML 进行验证,和 DTD 相比,XML Schema 是使用 XML 语法编写的,更易于学习和使用。
7.2 ”形式良好“和”合法“的 XML
7.2.1 形式良好的 XML 文档:
”形式良好“的 XML 文档拥有正确的语法:
7.2.2 验证 XML 文档:
合法的 XML 文档是"形式良好"的 XML 文档,这也符合文档类型定义(DTD)的规则:
7.3 XML DTD:
DTD的声明语法:
DTD元素的定义语法:
DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
7.4 XML Schema:
针对DTD的不足之处(如隐晦的语法、缺乏数据类型、封闭的内容模型以及不支持命名空间等)进行了改善。和DTD相比, XML Schema是使用XML语法编写的,更易于学习和使用。
W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:
八、解析XML技术
下面介绍3种常用的XML解析技术:
1. DOM(常用):
2. SAX:
3. DOM4J(常用):
8.1 DOM解析XML:
8.1.1 DOM概念:
常用接口介绍:
DOM解析包:org.w3c.dom(W3C推荐使用的用于DOM解析XML文档的接口),了解更多:在API文档中查看接口。
8.1.2 访问DOM树节点(这里以“使用DOM读取手机收藏信息”为实例):
DOM解析XML文件步骤:
使用DOM读取手机收藏信息中品牌和型号,**XML文档(收藏信息.xml)**代码如下:
XML文档对应树结构:
根据使用 DOM 解析 XML 文档的步骤可以实现:
显示“收藏信息.xml”文件中收藏的手机品牌和型号:
输出结果:
手机:华为 U8650
手机:苹果 iPhone4
手机:苹果 iPhone5
8.1.3 使用 DOM 解析 XML 时主要使用以下对象(参考上面代码里的红色字):
(1)Document 对象
Document 对象的主要方法如下:
(2)NodeList 对象
NodeList 对象的常用方法如下:
(3)Node对象
Node对象的主要方法如下:
(4)Element对象
在标签中可以包含属性,因此Element对象中也可以存取其属性的方法:
操作DOM树的节点进行增加、删除、修改、查询等操作,演示示例:
8.2 DOM4J 解析 XML:
重点:
概述:
DOM4J 的主要接口都在 org.dom4j 这个包里定义:
Attribute:定义 XML 属性
使用 DOM4J 解析“收藏信息.xml”,进行增加、删除、修改、查询等操作
Java代码示例:(需先导入 dom4j 的 jar 包)
使用 DOM4J 解析 XML 的关键操作(使用 DOM4J 对 XML 文件数据的查询、添加、修改和删除功能 )
总结如下:
读取 XML 文件,获得 document 对象
(1)获得文档的根元素
(2)获得某个节点的单个节点
(3)取得节点的文字
也可以:
(4)取得某节点下名为 "member" 的所有子节点并进行遍历
(5)对某节点下的所有子节点进行遍历
(6)在某个节点下添加子节点
(7)设置节点文字
(8)删除某节点
(9)添加一个 CDATA 节点
(1)获取某节点下的某属性
(2)取得属性的文字
也可以:
(3)遍历某节点的所有属性
(4)设置某节点的属性和文字
(5)设置属性的文字
(6)删除某属性
(1)文档中全为英文,不设置编码格式,直接写入
(2)文档中含有中文,设置编码格式再写入
——END
The text was updated successfully, but these errors were encountered: