Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->XML ->正文

DOM的结构

来源:Linuxdby.com 作者:Webmaster 时间:2007-04-28 点击: [收藏] [投稿]
 

在DOM 中,我们将代表XML 文件的程序设计对象,称为节点(nodes)。当Internet Explorer 5 处理被链接的XML 文件并储存于DOM 中时,它会为XML 文件的每一个基本组件建立一个节点。这些基本组件包括了元素、属性,与处理指令DOM 会使用不同形态的节点来代表不同形态的XML 组件。例如,元素是储存在Element 节点中,而属性则是储存在Attribute 节点中。表格9-1 列出了这些节点类型最重要的部分。

节点形态 节点对象所代表的XML文件组件 节点名称(nodeName 对象属性) 节点的值(nodeValue 对象属性)
文件(Document) 文件阶层中的根节点(代表整个XML 文件) #document Null
元素(Element) 元素 元素形态名称(例如,BOOK) null(包含在元素中的(Element)任何字符数据,是位在一个或多个子文字节点中)
文字(Text) 属于由这个节点的父节点所代表的元素,属性及实体的文字。 #text 父XML 组件的文字
属性(Attribute) 属性 (以及其它的名值对,像处理指令中的名字与值) 属性名称 (如Binding) 属性值(例如hardcover)
处理指令 (Processing Instruction ) 处理指令(XML 宣告或自订的处理指令) 处理指令的目标(例如xml) 除了目标之外整个处理指令的内容(例如,Version "1.0")
批注(Comment) 批注 #comment 在批注符号中的文字
CDATA 区段(CDATASection) CDATA 区段 #cdata-section CDATA 区段中的内容
文件类型(Document

Type)
文件形态宣告 出现在DOCTYPE 宣告中的根元素的名字(例如INVENTORY) Null
实体(Entity) DTD 中的实体宣告 实体名称(例如image) null (实体值是位在子文字节点中)
标签 DTD 中的标签宣告 标签名称(例如BMP) > null (卷标的系统literal(Notation)是位在名为SYSTEM 的 子Attribute node中)

表格9-1 用来表示不同XML 文件组件的基本节点形态。这些类型的每一个节点都是一个程序设计对象,提供了存取相关组件的属性与方法。

你可以从节点中的nodeName 属性获得每个节点的名称(详列于表格9-1 中的第三栏)。这个名称是以字符#起始,代表那些未在文件中命名的XML 组件节点的标准名称。(例如,在XML文件中的批注并未命名。因此,DOM 将使用标准名称#comment。)其它节点的名称则是由指定到XML 文件中相对应组件的名称衍生而来。(例如,代表形态BOOK 元素的元素节点也可以命名为BOOK。

你可以从节点的nodeValue 属性取得每个节点的节点值(列于表格9-1 中最后一栏)。如果XML组件拥有一个相关的值(例如,属性),该值将会被储存于节点的节点值中。如果XML 组件并没有节点值(例如,元素),则DOM 将会把节点值设成null。在本章稍后,你将学到更多有关列于表格9.1 中各种节点类型的相关知识。

DOM 会将XML 文件的节点建构成树状的阶层结构,反映出XML 文件本身的阶层结构。DOM将会建立一个单一文件节点来表示整个XML 文件,并将其视为阶层结构的根节点。注意,XML元素的逻辑阶层结构,包含了整个XML 文件,结构中的根节点,只是DOM 节点的阶层结构的一个分枝。

参考 列表9-1 中的XML 文件范例。(你可以在随书光盘的 Dom.xml 档案中找到列表9-1。)这份文件包含了XML 宣告、批注,以及包含子元素与属性的节点元素。

下图展示了节点的阶层组织,该节点是DOM 所建立用来呈现这份范例文件。对于范例文件中的每个组件,该图指出了用来表现每个组件的节点形态(例如,文件、批注和元素)以及节点的名称(下图括号中所示-例如#document、#comment 与INVENTORY)。


Inventory Dom.xml

lt;?xml version="1.0"?>

lt;!--File Name:Inventory Dom.xml -->

lt;INVENTORY>

lt;BOOK Binding="mass market paperback">

lt;TITLE> The Adventures of Huckleberry Finn

lt;AUTHOR Born="1835"> Mark Twain

lt;PAGES> 298

lt;PRICE> $5.49

lt;/BOOK>

lt;BOOK Binding="trade paperback">

lt;TITLE> The Marble Faun

lt;AUTHOR Born="1804"> Nathaniel Hawthorne

lt;PAGES> 473



lt;PRICE> $10.95

lt;/BOOK>

lt;BOOK Binding="hardcover">

lt;TITLE> Moby-Dick

lt;AUTHOR Born="1819"> Herman Melville

lt;PAGES> 724

lt;PRICE> $9.95



lt;/BOOK>

lt;/INVENTORY>

每个节点,就像可程序化的对象,提供了属性和方法,让你可以存取、显示、管理,和取得对应到XML 组件上的信息。例如,nodeName 和nodeValue 属性(表9-1 所示)提供了元素的名称及内含值。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:在 Excel 2003 中创建 XML 映射   下一篇:Sparks.com用XML和XSL来生成动态页面

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号