一、XML DOM简介
XML DOM定义了访问和处理XML文档的标准方法。
XML DOM是XML Document Object Model的缩写,即XML文档对象模型。
1. 什么是DOM?
a. DOM是W3C的推荐标准。
b. DOM定义了访问诸如XML和XHTML文档的标准。
"W3C文档对象模型(DOM)是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口。"
c. W3C DOM被分为3个不同级别:
(1) 核心DOM:用于任何机构化文档的标准模型。
(2) XML DOM:用于XML文档的标准模型。
(3) HTML DOM:用于HTML文档的标准模型。
d. DOM定义了所有文档元素的对象和属性,以及访问他们的方法。
2. 什么是XML DOM?
XML DOM定义了所有XML元素的对象和属性,以及访问他们的方法。
a. 用于XML的标准对象模型。
b. 用于XML的标准编程接口。
c. 中立于平台和语言。
d. W3C的标准。
3. XML DOM是用于获取、更改、添加或删除XML元素的标准。
二、XML DOM节点
XML文档中的每个成分都是一个节点。
1. 节点
根据DOM,XML文档中的每个成分都是一个节点。
DOM是这样规定的:
a. 整个文档是一个文档节点
b. 每个XML标签是一个元素节点
c. 包含在XML元素中的文本是文本节点
d. 每一个XML属性是一个属性节点
e. 注释属于注释节点
2. 实例
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="web"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> </bookstore>
在上面的XML中,根节点是<bookstore>。文档中的所有其他节点都被包含在<bookstore>中。
根节点<bookstore>有四个<book>节点。
第一个 <book> 节点有四个节点:<title>, <author>, <year> 以及 <price>,其中每个节点都包含一个文本节点,"Harry Potter", "J K. Rowling", "2005" 以及 "29.99"。
3. 文本总是存储在文本节点中
在DOM处理中一个普遍的错误是:认为元素节点包含文本。
不过元素节点的文本是存储在文本节点中的。
例如:<year>2005</year>,元素节点<year>,拥有一个值为"2005"的文本节点。"2005"不是<year>元素的值!
三、XML DOM节点树
XML DOM把XML DOM文档视为一棵节点树(node-tree)。
树中的所有节点彼此之间都有关系。
1. XML DOM节点树
a. XML DOM把XML文档视为一种树结构。这种树结构被称为节点树。
b. 可通过这棵树访问所有节点。可以修改或删除他们的内容。也可以创建新的元素。
c. 这棵节点树展示了节点的集合,以及他们之间的联系。这棵树从根节点开始,然后在树的最低层级向文本节点长出枝条:
2. 父、子和同级节点
节点树中的节点彼此之间都有等级关系。
父、子和同级节点用于描述这种关系。父节点拥有子节点,位于相同层级上的子节点成为同级节点。
a. 在节点树中,顶端的节点称为根节点
b. 根节点之外的每个节点都有一个父节点
c. 节点可以有任何数量的子节点
d. 叶子是没有子节点的节点
e. 同级节点是拥有相同父节点的节点
下面的图片展示出节点树的一个部分,以及节点间的关系:
注释:父节点:Parent Node 子节点:Chidren Node 同级节点: Sibling Node