第1使用数349 下载 <Author> auid>172-32-1176</au_id <au_lname>white</au_lname> <aufname>Johnson</au.fname> </Author> <au_id>213-46-8915 <aulname>Green</au lname> <au-fname>Marjorie</au_fname> </Authory </Authors XML文档本质上是分层结构的文档,也就是说,总是有一个顶层或根元素,然后在下面 有一些子元素。所以,上面的文档可以用图11-5来表示 Author 图11-5XML文档的分层结构 如果子元素有很多,将会得到一个层次很深的树状图。用DOM的术语来说,这些元素也 称为节点(node)。一个节点代表树状结构中的一个普通元素 基本对象 为了表现这种分层结构的本质,DOM提供了整套的对象、方法及属性以使我们能处理 DOM。在此不打算全部分析它们,但会讨论少数几个可能用到的对象和属性。首先介绍几个 对象,如表1-3所示 表11-3基本对象及说明 对象 在分层结构中的单个节点 NodeList 节点集合 Name Map 允许用名字和索引号访问的节点集合 还有一些用来访问节点的属性,如表11-4所示。 表11-4属性及说明 属性 childnodes 返回一个包含子节点的 NodeList对象 firstChild 返回当前节点的第一个子节点 lastchild 返回当前节点的最后一个子节点 parentNode 返回当前节点的父节点 eviousSibling 返回上一个兄弟节点,也就是在分层结构中相同层上的前一个节点 返回下一个兄弟节点,也就是在分层结构中相同层上的后一个节点 节点的名字 node value 节点的值
X M L文档本质上是分层结构的文档,也就是说,总是有一个顶层或根元素,然后在下面 有一些子元素。所以,上面的文档可以用图 11 - 5来表示。 图11-5 XML文档的分层结构 如果子元素有很多,将会得到一个层次很深的树状图。用 D O M的术语来说,这些元素也 称为节点( n o d e )。一个节点代表树状结构中的一个普通元素。 1. 基本对象 为了表现这种分层结构的本质, D O M提供了整套的对象、方法及属性以使我们能处理 D O M。在此不打算全部分析它们,但会讨论少数几个可能用到的对象和属性。首先介绍几个 对象,如表11 - 3所示。 表11-3 基本对象及说明 对 象 说 明 N o d e 在分层结构中的单个节点 N o d e L i s t 节点集合 N a m e N o d e M a p 允许用名字和索引号访问的节点集合 还有一些用来访问节点的属性,如表 11 - 4所示。 表11-4 属性及说明 属 性 说 明 c h i l d N o d e s 返回一个包含子节点的N o d e L i s t对象 f i r s t C h i l d 返回当前节点的第一个子节点 l a s t C h i l d 返回当前节点的最后一个子节点 p a r e n t N o d e 返回当前节点的父节点 p r e v i o u s S i b l i n g 返回上一个兄弟节点,也就是在分层结构中相同层上的前一个节点 n e x t S i b l i n g 返回下一个兄弟节点,也就是在分层结构中相同层上的后一个节点 n o d e N a m e 节点的名字 n o d e Va l u e 节点的值 第11章 使用X M L数据计计349 下载
350Ap3高装程 Chinapub.com 下载 以上并没有列出全部的对象和属性,但能让我们明白使用它们可能做些什么。如果想得 到全部的列表,可参考MSDN帮助中有关XML的内容,也可在 msdn. microsoft. com/xm/中找 到相关内容 下面详细分析一下前面例子中所用的文档的节点结构,如图11-6所示 parentNode lastchlld parentNode 了 au Inam 图11-6例子中文档的节点结构 此时,可以很清楚了解如何使用这些属性在 XML DOM中进行定位。虚线箭头指出了该 属性指向那个节点。根节点 Authors下的子节点存放于 childnodes集合中。在上面的例子中 由于根节点 Authors只有一个子节点,所以属性 first child和 last child指向了同一个节点。在这 种情况下,节点集合中唯一的节点就是 childnodes(0) 节点 Author有三个子节点,存放于一个 childnodes集合中。属性 first childi(也就是 childNodes(0)指向节点auid,属性 last Child(也就是 childnotes(2)指向节点 au fname。而属性 previousSibling和 nextsibling则在同一层分别指向节点集合中上一个和下一个兄弟节点 那么,假定有一个指向 Authors,名为 nod Root的节点对象,则节点的代码如表11-5所示 表11-5节点的代码表示法 代码 指向的节点 odRoot. childNodes(o) Author nodRoot. childNodes(O). firstChild odRoot childNodes(O). firstChild nextSibling au Iname nodRoot. childNodes(o). firstChild. parentNode Author 在这一章后面,你会看到更多的有关这方面的例子。 2.特殊的DOM对象 XML是可扩展的,主要用于满足文档的多样性,所以针对不同的节点类型有一些特殊的 对象。这些对象继承了Node对象的大部分方法和属性,同时也增加了一些特别的方法与属性 用于处理那些特殊的节点类型。这些对象及说明如表11-6所示。 表11-6DOM的特殊对象及说明 XML文档的根对象 ML有关的DTD或模式的信息。等同于DTD中的! DOCTYPE Document Fragment Document的轻量拷贝,用于临时存储或文档的插入操作
以上并没有列出全部的对象和属性,但能让我们明白使用它们可能做些什么。如果想得 到全部的列表,可参考 M S D N帮助中有关X M L的内容,也可在 m s d n . m i c r o s o f t . c o m / x m l /中找 到相关内容。 下面详细分析一下前面例子中所用的文档的节点结构,如图 11 - 6所示。 图11-6 例子中文档的节点结构 此时,可以很清楚了解如何使用这些属性在 XML DOM中进行定位。虚线箭头指出了该 属性指向那个节点。根节点 A u t h o r s下的子节点存放于 c h i l d N o d e s集合中。在上面的例子中, 由于根节点A u t h o r s只有一个子节点,所以属性 f i r s t C h i l d和l a s t C h i l d指向了同一个节点。在这 种情况下,节点集合中唯一的节点就是 c h i l d N o d e s ( 0 )。 节点 A u t h o r有三个子节点,存放于一个 c h i l d N o d e s集合中。属性 f i r s t C h i l d (也就是 c h i l d N o d e s ( 0 ) )指向节点a u _ i d,属性l a s t C h i l d (也就是c h i l d N o t e s ( 2 ) )指向节点a u _ f n a m e。而属性 p r e v i o u s S i b l i n g和n e x t S i b l i n g则在同一层分别指向节点集合中上一个和下一个兄弟节点。 那么,假定有一个指向A u t h o r s,名为n o d R o o t的节点对象,则节点的代码如表 11 - 5所示。 表11-5 节点的代码表示法 代 码 指向的节点 n o d R o o t . c h i l d N o d e s ( 0 ) A u t h o r n o d R o o t . c h i l d N o d e s ( 0 ) . f i r s t C h i l d a u _ i d n o d R o o t . c h i l d N o d e s ( 0 ) . f i r s t C h i l d . n e x t S i b l i n g a u _ l n a m e n o d R o o t . c h i l d N o d e s ( 0 ) . f i r s t C h i l d . p a r e n t N o d e A u t h o r n o d R o o t . c h i l d N o d e s ( 0 ) . f i r s t C h i l d . n e x t S i b l i n g . p a r e n t N o d e A u t h o r 在这一章后面,你会看到更多的有关这方面的例子。 2. 特殊的D O M对象 X M L是可扩展的,主要用于满足文档的多样性,所以针对不同的节点类型有一些特殊的 对象。这些对象继承了 N o d e对象的大部分方法和属性,同时也增加了一些特别的方法与属性 用于处理那些特殊的节点类型。这些对象及说明如表 11 - 6所示。 表11-6 DOM的特殊对象及说明 对 象 说 明 D o c u m e n t X M L文档的根对象 D o c u m e n t Ty p e 与X M L有关的D T D或模式的信息。等同于D T D中的! D O C T Y P E D o c u m e n t F r a g m e n t D o c u m e n t的轻量拷贝,用于临时存储或文档的插入操作 350计计ASP 3 高级编程 下载