XML 之DOM对象的属性及方法
1、 访问DOM中的节点
(1)、遍历树
● parentNode( ).这个方法可以访问父节点。
● firstChild( ).这个方法可以访问该节点的第一个子节点,不存在就返回空。
● nextSibling( ). 这个方法可以访问下一个兄弟节点,不存在就返回空。
● previousSibling( ). 这个方法可以访问上一个兄弟节点,不存在就返回空。
(2)、使用名字来访问节点
● getElementsByTagName(elementname):取得一个在文件或是某一部分文件中具有这
个名字的所有元素的列表;创建了这样的NodeList,就可以通过索引来访问这些命
名了的节点了。
2、 DOM方法返回的数据类型
数据类型 使用这种数据类型的节点描述
Unsigned short 所有的节点类型是无符号短整数
Unsigned long NodeList或NameNodeMap的长度是无符号的长整数
Node 包含所有节点细节的对象,(类型、名称、值、父节点、子节点…)
NodeList 节点对象索引列表的对象
NameNodeMap 节点对象非索引列表的对象(实用中有Attr、实体或符号节点)
DOMString 由统一字符编码标准字符组成的字符串
Boolean 真或假
Void 一些不返回值的方法
3、 Document接口的属性和方法
(1)、属性(只读)
★ doctype属性:返回文件首部的”<!DOCTYPE”信息。
★ Implementation属性:这个属性返回implementation节点。它有一个hasFeatures()
的布尔方法,有两个参数:文件类型(合法值是HTML或XML)和版本号。
★ DocumentElement属性:返回文件的根元素对象。
(2)、方法
★ createElement( )方法:将新元素的标记名做为参数,所创建的元素对象可以接
受属性及取值。
★ createDocumentFragment( )方法:创建一个documentFragment节点。
★ createTextNode( )、createComment( )和createCDATASection( )方法:创建如它们
名字所示的节点,它们的参数将成为节点内容的字符串。
★ createProcessingInstruction( )方法:有两个参数:
◆ PI对象作为第一个字符串
◆ PI数据作为第二个节点
★ CreateAttribute( )方法:创建具有给定名字的Attr节点;一旦创建了属性,就必
须用element接口的setAttribute( )方法赋给一个元素。
★ CreateEntityReference( )方法:参数是实体引用的名字。
★ GetElementsByTagName( )方法:取得所有具有所传参数指定的名字的后续元素
的列表,返回一个NodeList对象。用于XML文件的检索过程中。
4、 DocumentFragment接口
它可以在文件的一小部分上工作。
5、 Node接口
(1)、Node接口的属性
☆ nodeType属性:W3C DOM中描述了12种节点类型。
节点类型 整数 定义的常量值
Element 1 ELEMENT_NODE
Attr 2 ATTRIBUTE_NODE
Text 3 TEXT_NODE
CDATA Section 4 CDATA_SECTION_NODE
Entity Reference 5 ENTITY_REFERENCE_NODE
Entity node 6 ENTITY_NODE
Processing INSTRUCTION 7 PROCESSING_INSTRUCTION_NODE
Comment 8 COMMENT_NODE
Document 9 DOCUMENT_NODE
Document type 10 DOCUMENT_TYPE_NODE
Document fragment 11 DOCUMENT_FRAGMENT_NODE
Notation 12 NOTATION_NODE
☆ nodeName和nodeValue属性
节点类型 节点名 节点值
Element 标记名 NULL
Attr 属性名 属性的值
Text #text Text节点内容
CDATA Section #cdata-section CDATA段内容
Entity Reference 实体名引用 空。实体引用的替换值作为这个节点的第一节点。
Entity 实体名 实体的替换值作为这个节点的第一节点。
Processing instruction PI的目标 除目标之外的整个内容
Comment #comment 注释的内容
Document #document 符号的替换值作为这个节点的第一节点
Document Type 文件类型名 NULL
Document Fragment #document Fragment NULL
Notation 符号名 NULL
☆ parentNode属性:除了Document,documentFragment,entity,notation和Attr之外
的所有节点都有父节点。
☆ ChildNodes属性:返回这个节点的所有子节点的NodeList。用hasChildNodes( )方
法来检查子节点是否真的存在。
☆ FirstChild,lastChild,previousSibling和nextSibling属性:这些属性具有相应位置
关系的节点对象,不存在就返回空。
☆ Attributes属性:这个(IDL)属性只对元素类型的节点有效,其他节点都返回空
返回包含所有属性的一个NamedNodeMap.
☆ OwnerDocument属性:这个属性将文件对象作为一个节点返回。
(2)、node接口的方法
★ insertBefore( )方法:将新的子节点插入到引用子节点并返回new_node:
dummy = node_object.insertBefore(new_node,reference_node)
这时dummy包含被插入的节点的一个副本。
★ replaceChild( )方法:替换子节点并返回被替换的节点
dummy = node_object.replaceChild(new_node,reference_node)
这时dummy包含被插入的节点的一个副本。
★ removeChild( )方法:删除被引用的子节点并返回被删除的节点
dummy = node_object.removeChild(reference_node)
这时dummy包含被删除的节点的部分。
★ appendChild( )方法:将新节点加入到其他子节点的后面并返回新节点
dummy = node_object.appendChild(new_node)
这时dummy包含新节点的一个副本。
★ hasChildNodes( )方法:返回一个布尔值,它是给定节点是否有子节点的测试结果。
★ cloneNode( )方法:建立被Clone节点的一个副本,用true和false做为参数
◇ True:除Clone元素本身外,还Clone它的所有内容
◇ False:仅Clone元素本身。
Clone的节点是一个孤儿。
★getChildNodes( )方法:返回被引用的文档的所有孩子节点
6、 NodeList接口
◇ item( )方法:将一个索引作为参数并返回这个索引位置上的节点,如果索引超出范围,则返回空。
◇ length属性:返回一个无符号的长整数,并指出NodeList种节点的个数。
7、 NamedNodeMap接口
● getNamedItem( ),setNamedItem( )和removeNamedItem( )方法:这些方法获取、增加和删除给定名字的节点。
● length属性:返回NamedNodeMap的长度。
8、 CharacterData接口
(1) 属性
◎ data属性:以Unicode串返回这个节点的所有内容。
◎ length属性:返回这个字符串的字符个数。
(2) 方法
◎ subStringData方法:返回字符串的一个子串。
◎ appendData( )方法:参数是一个 字符串,被追加到这个节点的后面。
◎ insertData( )方法:有两个参数,偏移量指出插入数据的位置;字符串是
被插入的字符串。
◎ deleteData( )方法:两个整数做参数:偏移量和计数参数。
◎ replaceData( )方法:有三个参数,偏移量、指出替换多少字符的计数器
以及替换字符串。
9、 Attr接口
◆ name属性:返回属性名称。
◆ value属性:返回属性值。
◆ specified属性:这是一个布尔属性;无论是原文件还是代码,如果这个属性
被赋了值,specified属性就返回true
10、 Element接口
★ getAttribute( )方法:通过名字来取得属性的值。
★ setAttribute( )方法:实际被用来创建属性并设置属性值。
★ removeAttribute( )方法:将具有给定名字的属性删除。
★ getAttributeNode ( )方法:如果传给它一个名字,就返回一个Attr节点。
★ setAttributeNode( )方法:如果传给它一个Attr节点,它就设置一个属性。
★ removeAttributeNode( )方法:如果传给它节点的名字,实际的Attr节点对象
就被删除。
★ getElementsByTagName( )方法:这个方法用在document接口和用在
DocumentFragment接口上具有相同的语法。在element接口中,它仅仅返回
一个元素节点中具有这个名字的后续节点的NodeList,而不是整个文件。
★ normalize( )方法:如果factory方法创建一个或多个相邻的文本子节点而不影响
元素的建立,那么尽管它们相邻睥,但仍然作为独立的节点存在。Normailze()
方法可以将它们结合成为一个节点。
◆tagname属性:这个属性Copy了node接口中nodeName属性的功能。
posted on 2007-01-18 02:57
Eternity 阅读(93)
评论(0) 编辑 收藏 引用 所属分类:
XML