|
加入收藏
|
设为首页
|
证书查询
|
首页
|
中心简介
学院简介
中心简介
教学环境
教学模式
课程优势
清华风采
社会形象
大事记
清华声明
|
形象展示
视频下载
|
专业介绍
预科课程
软件工程师
网络工程师
短期课程
职业素养训练
学术专家在线
|
在线学习
net培训
java培训
sql数据库培训
|
证书展示
清华大学证书
工信部证书
学历证书
|
讲师风范
网络专业讲师
软件专业讲师
教务老师
职业规划师
就业指导教师
|
就业指导
网络招聘会
签约流程
战略合作企业
就业心得
就业成果
就业保障体系
面试试题
就业兵法
|
学员社区
学习心得
拓展活动
学生会成员
软件下载
|
班主任群
班主任通知
班主任工作
班主任介绍
班主任心得
|
报名咨询
咨询问题解答
我要报名
清华贴吧
|
就业联盟
免费体验
当前位置:
首页
>>
在线学习
>>
java培训
XML技术基础知识
繁简对译:[
繁
简
] 字体设置:[
大
中
小
]
2008-10-09 阅读 次
第八章
XML
技术基础知识
•
本章将对
XML
基本知识进行详细的分析,然后介绍几种常见的
XML
文档处理技术,最后用
Java
对
XML
文档的解析来结束本章内容的讲解,通过本章的学习,读者将对
XML
的基础知识有一个比较清楚的认识,并学会使用常见的
XML
文档操作技术,并且学会使用
JAVA
语言处理常见的
XML
文档。
8.1
XML
入门基础
•
XML
是元置标语言,只要针对具体的业务需要制定对应的词表,互联网上的用户就可以通过词表读出
XML
文档的具体语义,这样就可以满足互联网上分布式业务数据处理的需要。这就是
XML
文档能得到广泛应用的最大原因。
8.1.1
XML
简介
•
XML
是一种元置标语言,它可以使用标签来描述数据,这些标签不是
XML
中预定义的,而是由用户自己来定义这些标签,用户可以根据实际中的需要创建各种标签,
8.1.2
XML
和
HTML
的区别
•
在介绍
XML
和
HTML
的区别之前,(具体内容请参照书。)
8.1.3
XML
和数据库的区别
•
XML
虽然也可以存储数据,但是并不是说可以替代数据库用来存储数据,
XML
的主要目的是为了共享数据,这里所说的存储数据是指可以用
XML
描述对象的结构和信息,从而实现在用户之间共享数据。
•
XML
并不是要替代数据库,仅仅是在共享数据的时候用来存储对象的结构和信息,这里的存储量是有限的。如果需要存储并管理大量的数据还是要选择数据库。在
XML
中存储大量数据是不现实的。而且在
XML
中并不提供数据的管理查询的支持。
8.1.4
XML
简单语法
•
XML
是一种自描述的语言,虽然语法比较简单,但是还是有比较严格的要求。
•
1
.在
XML
文档中,必须有
XML
声明
•
2
.
XML
文档必须有一个而且只能有一个根结点
•
3
.
XML
文档的标签必须成对出现
•
4
.
XML
文档中的标签不可以嵌套使用
•
5
.
XML
文档对大小写敏感
8.1.5
XML
简单示例
•
在上面简单介绍做了
XML
的简单语法,(具体内容请参照书。)
8.2
文档数据类型定义
DTD
•
XML
文档中的标签都是用户自己定义的,如果这种标签可以任意书写而没有任何约束,那这样的文档就没有任何的用处,因为没有人知道这种文档的含义,更别提什么数据共享了,这样的文档只能成为垃圾信息。
8.2.1
DTD
概述
•
DTD
(
Document Type Definition
)即文档结构类型定义,
DTD
用来定义
XML
文档的模式,通俗的将就是制定
XML
文档中标签的使用规则。在
XML
文档中可以包括
DTD
数据,也可以没有
DTD
数据,但是出于共享信息的需求,一般情况下还是需要提供
DTD
数据。
DTD
数据使用
DTD
语言描述的,其中
DTD
语言是专门描述文档模式的指标语言,
DTD
本身并不遵循
XML
的语法。
8.2.2
XML
文档元素内容定义
•
使用
DTD
可以对文档的内容进行约束,
XML
中的
DTD
数据必须用
<!DOCTYPE>
标记说明,其语法格式如下。
<!DOCTYPE
根元素名称
[DTD
定义数据
]>
•
XML
的元素内容定义格式如下。
•
<!ELEMENT
元素名称 元素内容描述字符串
>
(具体内容请参照书。)
8.2.3
XML
文档元素属性定义
•
XML
中的节点元素可以有自己的属性,同样可以使用
DTD
对
XML
文档节点元素的属性进行定义。
XML
文档节点元素的定义语法如下。
<!ATTLIST
节点元素名称 属性名称 属性类型 取值方式
>
(具体内容请参照书。)
8.2.4
XML
外部引用
DTD
示例
•
在上面的两个示例程序中,
DTD
的内容都是包含在
XML
文档之中,如果一个
DTD
定义对于多个
XML
文档都是有效的,把这个
DTD
包括在每个
XML
文档中当然是可行的,但是在这里可以又更好的方法,就像在
XML
中引用外部的
CSS
文件一样,在
XML
中也可以引用外部的
DTD
,这样就可以是多个
XML
文档共用一个
DTD
文件,而不是在每个
XML
文档中都重新定义。(具体内容请参照书。)
8.3
XML
文档的显示技术
•
XML
是用来描述数据,存储数据的,在前面的例子中我们可以看到,
XML
文档在浏览器中运行的效果仅仅是节点的树状结构。其实借助与
CSS
、
XSL
、
DSO
等技术,
XML
文档数据同样可以在浏览器中有丰富的现实效果。这些
XML
文档的显示技术各有优劣,在本节的内容中将会详细介绍这几种技术的内容。
8.3.1
XML
文档显示技术概述
•
XSL
是可以显示
XML
文档数据内容的另一种技术,
XSL
可以从
XML
文档中提取部分内容,然后和
HTML
模版相结合,从而可以用丰富的形式显示
XML
文档的内容。
DSO
即数据源对象,也可以用来显示
XML
文档的内容,
DSO
可以取出
XML
文档的数据内容,从而把这些内容嵌套到
HTML
标签中,借助于
HTML
标签强大的显示功能来显示
XML
文档的内容。
8.3.2
CSS
样式表显示
•
在本书的
3.3
节中简单介绍了
CSS
样式表的基本知识,在本章中着重介绍如何使用
CSS
来显示
XML
文档,(具体内容请参照书。)
8.3.3
XSL
样式表显示
•
XSL
样式表定义了重组输出
XML
文档内容的规则,它仅仅是一个规则,定义如何输出
XML
文档中的内容,输出
XML
文档的哪部分的内容。(具体内容请参照书。)
8.3.4
数据岛对象(
DSO
)显示
•
使用
IE5.0
或者更高的版本,
XML
数据可以以数据岛的形式嵌入
HTML
页面。数据岛对象(
DSO
)技术是在
HTML
文档中加入结构化数据进行处理的技术,结构化数据指的是满足一定结构规范的数据集合,而对称结构的
XML
文档就是结构化数据,所以使用
DSO
技术可以把
XML
的内容嵌入
HTML
页面中,从而达到显示
XML
文档的目的。
8.4
XML
文档
DOM
解析技术
•
在上面的章节中介绍了
XML
文档的显示技术,但是在更多的时候,我们需要读取、创建、操作一个
XML
文档,这就需要对
XML
文档进行解析,在接下来的章节中将详细介绍
XML
的解析技术,在
IE
浏览器中自带有
MSXML
解析器,只要你装有
IE
浏览器就已经有了解析
XML
文档的环境,在本节中,只介绍使用
JavaScript
语言操作
XML
文档的技术,在本章的最后一节将详细介绍使用
Java
语言解析
XML
文档的技术。
8.4.1
XML
文档
DOM
解析技术简介
•
XML DOM
(
XML Document Object Model
)即
XML
文档对象模型,它是
XML
分析器提供的处理
XML
文档的
API
接口,这种接口与具体的语言无关,可以采用任何一种程序设计语言调用这个接口,通过
XML DOM
编程接口来操作
XML
文档,包括操作
XML
文档的结构数据和内容数据。
XML DOM
对象模型把
XML
文档理解为有文档节点构成的一个节点树,树和节点都是抽象的概念,树代表
XML
文档的全部内容,节点代表文档数据的结构单元,在学习
XML
的过程中清楚认识到
XML
文档就是一颗节点构成的树,而
DOM
就是在内存中构建
XML
的节点树,从而方便对
XML
文档的各种操作。
8.4.2
DOM
解析示例之验证文档的有效性示例
•
在本书的
8.2
小节中曾提及
XML
文档的有效型验证的问题,
XML
有效性的验证有很多方法,在
MSXML
分析器中提供了验证
XML
文档有效性的方法,只是在浏览器中默认是不验证
XML
文档的有效性的,在下面这个示例程序中,将调用
MSXML
的解析器对
XML
文档的有效性进行验证。(具体内容请参照书。)
8.4.3
DOM
解析示例之动态创建节点示例
•
在上面的实例程序中,只是对
XML
文档的有效性进行了验证,并没有设计
DOM
解析的实质内容,
DOM
最具标志性的操作就是对文档节点的控制,在下面这个示例程序中将介绍
XML
文档节点操作的方法,
8.4.4
DOM
解析示例之操作
XML
文档节点属性示例
•
在上面的示例程序中,分别展示了
XML
文档有效性的验证和动态创建
XML
文档节点,但是对于节点的操作仅仅限于节点的内容,在接下来的内容中将介绍
XML
文档属性的操作方法。(具体内容请参照书。)
8.5
XPATH
节点表达式基础知识
•
(具体内容请参照书。)
8.5.1
XPATH
简介
•
表达
XML
文档中节点集合可以用
XPath
语言来描述,
XPath
也是由
W
3C
定义、用于在
XML
文档中描述部分节点集合的语言,这里的节点集合可以是单个节点、以某个节点为根的子树或者是节点与子树的集合,即
XPath
表达式就是节点和子树的集合。
8.5.2
XPATH
语言中常用的简写符号
•
在
XPath
中,有一些常用的简写符号,具体如下。
•
(
1
)
“
/
”
代表根节点,就是
XML
文档节点树的起始节点。
•
(
2
)
“
A/B
”
代表层次,即在
XML
文档节点树中,
A
节点是
B
节点的父节点。(具体内容请参照书。)
8.5.3
常用文档节点及其表达式
•
在提取
XML
源文件内容的时候常用的节点是:文档根节点、元素节点、属性节点、和文本节点。为了方便定位这些元素,下面提供常用的文档节点以及器表达式。
•
(
1
)文档根节点
•
(
2
)文档元素节点
•
(
3
)元素属性节点
8.6
Java
解析
XML
•
XML
在
Java
中的地位是相当重要的,尤其在
J2EE
中,
XML
的身影更是随处可见,例如在每个
J2EE
应用项目中都需要有一个
web.xml
的配置文件,在
Tomcat
服务器中,几乎所有的配置文件都是
XML
格式的文档,而且在
Web Services
中间,
XML
的地位更显得重要。在接下来的内容中将介绍使用
Java
解析
XML
文档的技术。
8.6.1
Java
处理
XML
概述
•
在
Java
解析
XML
的时候,无论是使用
JAXP
还是使用第三方的解析器,都有两种解析方式:
DOM
方式解析和
SAX
方式解析。其中
DOM
方式解析就是在内存中构建整个
XML
文档的节点树,从而使对
XML
文档的操作变成对内存中结点树的操作。这种方式的优点是可以方便定位节点,缺点是需要把整个文档读入内存,然后才能构建起这个文档的结点树,如果
XML
文档比较大的时候就会增加系统的开销。
8.6.2
在
JSP
中生成
XML
文档
•
在
J2EE
项目开发的过程中,经常会遇到生成
XML
文档的需要,使用
Java
生成
XML
文档有多种方法可供选择,可以使用
JAXP
或者是第三方的
XML
解析工具进行创建,或者使用
Java
输出字符串,按照
XML
的标准输出的字符串就是
XML
文档,在这里我们展示后一种
XML
文档的生成方法。(具体内容请参照书。)
8.6.3
使用
JAXP
按
SAX
方式解析
XML
文档
•
JAXP
也支持使用
SAX
的方式解析
XML
文档,在
SAX
方式的解析过程中,可以对节点的开始和结束事件进行监听和处理,在这个示例程序中,我们使用一个
JavaBean
来监听和处理
XML
的节点解析事件。(具体内容请参照书。)
8.6.4
使用
JDom
按
DOM
方式解析
XML
文档
•
在上面的章节中介绍了使用
Java
语言自带的
JAXP
解析
XML
文档的具体方法,但是
JAXP
只是解析
XML
文档的一种简单的实现,在实际的解析过程中,某些场景下使用
JAXP
并不方便,这样就需要使用第三方提供的
XML
解析
API
,在这方面做的比较出色的有
JDom
、
Dom4J
、
Xerces
等,这些
API
的使用方法都很相似,在本章的以
JDom
为例进行介绍。(具体内容请参照书。)
8.6.5
使用
JDom
按
SAX
方式解析
XML
文档
•
在
JDom
中对于
SAX
方式解析
XML
文档的功能支持相当优秀,大家都知道
SAX
方式解析
XML
文档的效率很高,但是节点操作不是很方便,在
JDom
中,使用
SAX
方式解析
XML
文档和使用
DOM
方式没有很大的区别,在
SAX
方式中,同样可以对节点进行操作,所以在实际的开发中,开发人员一般情况下会选择
JDom
的
SAX
解析方式。
8.7
小结
•
在本章的内容中,简单介绍了
XML
的基本语法,对
XML
的显示技术进行了比较详细的介绍,介绍了三种比较常用的
XML
文档显示技术,
XML
文档的解析是
XML
学习中的重点,在本章中占了比较大的篇幅,其中详细介绍了使用
Java
解释
XML
的几种常用的技术,在学习完本章的知识以后,读者应该对
XML
的基本知识有一个清楚的认识,并尝试自己写程序来解析
XML
文档。在实践的基础上提升动手能力,同时加深对
XML
知识的理解。
上一篇:JSTL基础知识
下一篇:JSP数据库开发基础知识
相关文章
清华IT工程师课程的学习时间一般在八九个月,而在高...
面试:需要了解企业文化
学习心得---刘彤彤
国内IT行业一周要闻回顾(5月30日至6月5日)
天津市软件业迎来上升期 去年销售收入123.6亿
清华IT邀请南大教授举办第一期软件沙龙
你们怎样保证学习效果?那么多的课程内容我能学好吗...
本周日
打印
收藏
关闭