DOM的结构

钃濊姱鈾洗

钃濊姱鈾洗

2016-02-19 14:52

今天图老师小编给大家展示的是DOM的结构,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
 

在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 所示)提供了元素的名称及内含值。

所有形态的节点共同分享一组公共的属性与方法。这些属性与方法一般是设计来偕同节点一起运作。表格9-2 列出了一些比较有用的共同属性。在本章稍后你将获得有关这些属性的更多信息及范例。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

属性 描述 范例 attributes 该节点的所有非属性的子节点的NamedNodeMap 集合 AttributeNode =Element.attributes.getNamedItem ("Binding"); childNodes 该节点的所有非属性的子节点的NodeList 集合 FirstNode =Element.childNodes (0); dataType 该节点的数据类型(只适用于某些类型Attribute 节点) AttributeType =Attribute.dataType; firstChild 该节点的第一个非属性的子节点 FirstChildNode =Element.firstChild; lastChild 该节点的最后一个非属性的子节点 LastChildNode =Element.lastChild; nextSibling 与本节点位于同一层级的后继前一节点 NextElement =Element.nextSibling; nodeName 节点的名称 ElementName =Element.nodeName; nodeType 表示该节点类型的数值码 NodeTypeCode =Node.nodeType; nodeTypeString 包含该节点类型的字符串,以小写字母撰写(例如,"element"或"attribute") NodeTypeString=Node.nodeTypeString; nodeValue 该节点的值(如果不含值则为null) AttributeValue =Attribute.nodeValue; ownerDocument 包含本节点的文件的根Document 节点 Document =Node.ownerDocument; parentNode 该节点的父节点(并不适用于Attribute 节点) ParentElement =Element.parentNode; previousSibling 与本节点位于同一层级的先前节点 PreviousElement =Element.previousSibling; text 该节点与其后裔节点的全部文字内容 AllCharacterData =Element.text; xml 该节点与其后裔节点的全部XML 内容 XMLContent =Element.xml;

提示

有关属于不同形态节点对象的所有属性、方法,与事件的详细叙述,请参阅由MSDN 所提供的信息,网址为 http://msdn.microsoft.com/xml/reference/scriptref/xmldom_Objects.asp 。注意在该网页中,前置字符串XMLDOM 作为表格9-1 中每个节点名称的开端-例如,XMLDOMDocument、XMLDOMElement 与XMLDOMText.(这些是每个节点形态的程序接口的名称。) 也注意共同的节点属性和方法被列于XMLDOMNode 的后面。

除了共同的属性和方法外,每种类型的节点都提供了附加的属性和方法,来处理该节点类型所代表的特殊XML 组件。例如,文件节点(Document node)提供了parseError 属性,内含任何处理文件时所产生错误的相关信息。只有文件节点拥有这种属性。在本章稍后,你将看到一份描述某些节点类型的有用节点特殊属性和方法的表格。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

提示

如果某个属性不适用于特定节点,则该属性将包含null 值。例如,如果某节点代表一个不包含任何属性的XML 文件(如Document 或Comment node)时,其attributes 属性将被设为null。如果某节点代表某个不含有任何数据类型(只有某些属性拥有数据类型)的XML 组件时,该节点的dataType 属性将被设为null。如果节点并没有任何非属性的子节点,其firstChild 属性将为null。而如果节点为不含值的类型(如Document 或Element node),其nodeValue 属性将被设为null。

注意,表格9-2 中,每个节点拥有一组属性,让你可以浏览节点的阶层架构,来从目前节点存取其它节点的资料。例如,在列表9-1 中的文件,如变量Document 包含了文件的根Document节点,后续的程序代码将会显示最接近文件起始部分批注的内容,而DOM 会将批注内容储存在Document 节点的第二个子节点中。

alert (Document.childNodes(1).nodeValue);

这行程序代码将会显示一个消息框,内含文字「File Name: In-ventory Dom.xml」。透过XML data island 取得DSO 的XMLDocument 成员对象,来存取根Document 节点。此Document 节点被视为存取XML 文件的网关(gateway)。

你使用该节点来存取其它的节点。

展开更多 50%)
分享

猜你喜欢

DOM的结构

Web开发
DOM的结构

Dom遍历XML的一个例子,结果为树状结构

ASP
Dom遍历XML的一个例子,结果为树状结构

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XML 问题: 超越DOM(轻松使用 DOM 的技巧和诀窍)

Web开发
XML 问题: 超越DOM(轻松使用 DOM 的技巧和诀窍)

jQuery 创建Dom元素

Web开发
jQuery 创建Dom元素

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

牙齿的结构

补牙 治疗 育儿知识 怀孕 孕妇
牙齿的结构

HTML DOM Viewer

Web开发
HTML DOM Viewer

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

老毛桃一键还原详细使用教程

老毛桃一键还原详细使用教程

Web设计中如何使用XML数据

Web设计中如何使用XML数据
下拉加载更多内容 ↓