第21章 XML

第21章 XML 自从DOM出现后,所有浏览器都内置了对XML的原生支持(XML DOM),同时也提供了一系列相关的技术支持。DOM 2是第一个提到动态创建XML DOM概念的规范;DOM 3进一步增强了XML DOM,新增了解析和序列化等特性。IE 9+、Firefox、Opera、Chrome和Safari等现代主流浏览器都支持XML DOM标准规范。本章将介绍JavaScript处理XML数据的基本方法。 【学习重点】 ▲ 了解XML语法 ▲ 正确读取XML ▲ 在主流浏览器中操作XML数据
摘要由CSDN通过智能技术生成

第21章 XML

自从DOM出现后,所有浏览器都内置了对XML的原生支持(XML DOM),同时也提供了一系列相关的技术支持。DOM 2是第一个提到动态创建XML DOM概念的规范;DOM 3进一步增强了XML DOM,新增了解析和序列化等特性。IE 9+、Firefox、Opera、Chrome和Safari等现代主流浏览器都支持XML DOM标准规范。本章将介绍JavaScript处理XML数据的基本方法。

【学习重点】

▲ 了解XML语法

▲ 正确读取XML

▲ 在主流浏览器中操作XML数据:使用XPath

21.1 XML概述

1998年W3C推出XML标准(eXtensible Markup Language,表示可扩展的标记语言)。 XML具有可扩展性,根据XML标准,用户可以自定义标记,以此来表示各种形式的数据。

为了更好地理解XML文档,先来看一个简单的实例,通过该实例可以了解XML文档的创建以及结构。

【示例】在本示例中创建一个简单的XML文档,模拟留言栏结构,包括编号、标题、时间和内容等。代码如下:

在上面的代码中,第1行表示XML声明,从第2行开始表示文档中各个元素。与HTML一样,XML也是一个基于文本的标记语言,用“<”和“>”标记(一对尖括号)来表示数据。不同的是,XML标记说明了数据的含义,而不是如何显示它。在浏览器中预览,则显示效果如图21-1所示。

图21-1 XML文件显示效果

XML文档的内容都是由一个根元素构成(如blog),它由开始标记<blog>和结束标记</blog>组成。开始标记与结束标记之间就是这个元素的内容。由于各个元素的内容被各自的元素标记所包含,在XML中各种数据的分类查找和处理变得非常容易。

提示:XML文档一般包含3个部分:XML声明、处理指令和XML元素,其中处理指令是可选部分。

☑ 每个XML文档都必须有声明。声明包含XML版本,以及所使用的字符集等信息。这些声明信息是XML处理程序正确解析XML数据的基础。在XML文档前面不允许有其他任何字符,甚至是空格。XML声明必须是XML文档中的第一行内容。

☑ XML声明以分隔符“<?”开始,“?>”结束。“<?”标记后面的XML关键字表示该文件是一个XML类型的文件。

☑ version="1.0"表示该文档遵循的是XML l.0标准。在XML声明中要求必须指定version的属性值,指明文档所采用的XML版本号,且它必须在属性列表中排在第一位。

encoding="utf-8"表示该文档使用的是GB2312字符集。在XML规范中,包括很多编码类型,常见的编码如下。

☑ 简体中文编码:GB2312。

☑ 繁体中文编码:BIG5。

☑ 压缩的Unicode编码:UTF-8。

☑ 压缩的UCS编码:UTF-16。采用哪一种编码取决于文档中用到的字符集。在上面的示例中标记都是用中文来写的,内容也含有中文,因此需要在声明中加上encoding="utf-8"属性。

处理指令是用来给处理XML文档的应用程序提供信息。所有处理指令应该遵循下面格式:

     <?处理指令名 处理指令信息?>

由于XML声明的处理指令名是“xml”,因此其他处理指令名不能再用“xml”。例如,针对下面这条指令:

     <?xml-stylesheet type="text/xsl" href="xsl.xsl" ?>

具体解释如下:

☑ <?……?>表示该行是一条指令。

☑ xml-stylesheet表示该指令用于设定文档所使用的样式表单文件。

☑ type="text/xsl"属性设置文档所使用的样式表单为XSL类型。如果要设置为CSS样式表,则该属性应该为type="text/css"。

☑ href="xsl.xsl"属性设置样式表单文件的地址。

21.2 XML文档对象模型

XML文档对象模型(XML DOM)定义了访问和操作XML文档的标准方法。DOM将XML文档作为一个树形结构,而树叶被定义为节点。

21.2.1 认识XML DOM

XML DOM通过对XML文档的分析,把整个XML文档以一棵树的形式存储在内存中,不管这个文档多么复杂,文档中的信息都会被转换成一棵对象节点树。在这棵节点树中,有一个根节点,所有其他节点都是根节点的后代节点(子节点)。

【示例】在XML DOM中,文档的逻辑结构类似一棵树,文档、文档中的根、元素、元素的内容、属性、属性值等都是以对象模型的形式表示的。例如,针对下面XML文档结构:

其对应的DOM树状结构如图21-2所示。

图21-2 XML DOM文档树形结构

DOM节点树生成之后,即可通过DOM接口访问、修改、添加、删除、创建树中的节点和内容。

提示:节点树中的节点彼此之间都有等级关系。父、子和同级节点用于描述这种关系。父节点拥有子节点,位于相同层级上的子节点称为同级节点(兄弟或姐妹):

☑ 在节点树中,顶端的节点称为根节点。

☑ 根节点之外的每个节点都有一个父节点。

☑ 节点可以有任何数量的子节点。

☑ 叶子是没有子节点的节点。

☑ 同级节点是拥有相同父节点的节点。

21.2.2 读取XML

当在浏览器加载XML数据之后,就可以借助XML DOM定义的属性和方法来读取全部或部分数据。其中Node对象是整个DOM的主要数据类型。根据DOM文档对象模型规定,XML文档中的每个对象都是一个节点,具体说明如下:

☑ 整个文档是一个文档节点。

☑ 每个XML标签是一个元素节点。

☑ 包含在XML元素中的文本是文本节点。

☑ 每一个XML属性是一个属性节点。

☑ 注释属于注释节点。

Node对象包含的常用属性如表21-1所示,常用方法如表21-2所示。

表21-1 Node对象包含的常用属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值