XMLDOC的常用方法和属性

以下内容 摘录于网上 对原作者的用心整理和无私分享表示感谢
Document 对象属性
以下所列是可用的document对象属性:
1. async
2. attributes
3. childNodes
4. doctype
5. document.Element
6. firstChild
7. implementation
8. lastChild
9. nextSibling
10. nodeName
11. nodeType
12. nodevalue
13. ondataavailable
14. onreadystatechange
15. ownerdocument.
16. parentNode
17. parseError
18. previousSibling
19. readyState
20. url
21. validateOnParse
22. xml

以下列出关于document对象可用的方法。
1. abort
2. appendChild
3. cloneNode
4. createAttribute
5. createCDATASection
6. createComment
7. createdocument.ragment
8. createElement
9. createEntityReference
10. createNode
11. createProcessingInstruction
12. createTextNode
13. getElementsByTagName
14. hasChildNodes
15. insertBefore
16. load
17. loadXML
18. nodeFromID
19. parsed
20. removeChild
21. replaceChild
22. selectNodes
23. selectSingleNode
24. transformNode

下面列出来的是document对象可用的事件:
1. Ondataavailable
2. Onreadystatechange

Document 对象属性
以下所列是可用的document对象属性:
1. async
2. attributes
3. childNodes
4. doctype
5. document.lement
6. firstChild
7. implementation
8. lastChild
9. nextSibling
10. nodeName
11. nodeType
12. nodevalue
13. ondataavailable
14. onreadystatechange
15. ownerdocument.
16. parentNode
17. parseError
18. previousSibling
19. readyState
20. url
21. validateOnParse
22. xml


async 属性
------------------
async 属性表示是否允许异步的下载。

基本语法:
boolvalue = XMLdocument.async;
XMLdocument.async = boolvalue;
说明:布尔值是可擦写的(read/write),如果准许异步下载,值为True;反之则为False。
使用范例:
xmlDoc.async = "false";
alert(xmlDoc.async);

attribute 属性
-------------------
传回目前节点的属性列表。

基本语法:
objAttributeList = xmlNode.attributes;
说明:传回一个物件。如果此节点不能包含属性,则传回空值。
使用范例:
objAttList = xmlDoc.document.lement.attributes;
alert(objAttList);
------------------------------------------------------------------------------
[Note]
例子以[object]为结果传回。
这是由于被传回的对象,若不使用其它的对象属性,就不能以文字来表示,
在本附录中包含数个这样的例子。尽管很多对象属性本身似乎不是很有用,
但您将会在附录中看到如何组合属性和方法得到您要的结果。
------------------------------------------------------------------------------


childNodes 属性
-----------------
传回一个节点清单,包含该节点所有可用的子节点。

基本语法:
objNodeList=node.childNodes;
说明:传回一个物件。假如这节点没有子节点,传回null。
使用范例:
objNodeList = xmlDoc.childNodes;
alert(objNodeList);


doctype 属性
-----------------
传回文件型态节点,包含目前文件的DTD。
这节点是一般的文件型态宣告,
例如,节点<!DOCTYPE EMAIL SYSTEM "LstA_2.dtd">,
名为EMAIL 的节点物件会被传回。

基本语法:
objDocType=xmldocument.doctype;
说明:传回一个对象,这个属性是只读的。假如这文件不包含DTD,会传回null。
使用范例:
objDocType = xmlDoc.doctype;
alert(objDocType.nodeName);
document.lement 属性


确认XML 文件的根(Root)节点。
----------------------------
基本语法:
objDoc=xmldocumentdocument.element;
说明:回一个在单一根文件元素中包含数据的对象。
此属性可读/写,如果文件中不包含根节点,将传回null。


使用范例:
objDocRoot = xmlDoc.document.element;
alert(objDocRoot);


firstChild 属性
-----------------
确认在目前节点中的第一个子元素。

基本语法:
objFirstChild = xmlDocNode.firstChild;
说明:此属性只读且会传回一对象,如果节点中没有包含第一个子元素,将传回null。
使用范例:
objFirstChild = xmlDoc.document.lement.firstChild;
alert(objFirstChild);


implementation 属性
---------------------
DOM 应用程序能使用其它实作中的对象。
implementation 属性确认目前XML 文件的DOMimplementation 对象

基本语法:
objImplementation = xmldocument.implementation;
说明:此属性只读且传回一个对象。
使用范例:
objImp = xmlDoc.implementation;
alert(objImp);

lastChild 属性
---------------
确认目前节点中最后的子元素。

基本语法:
objLastChild = xmlDocNode.lastChild;
说明:此属性只读且传回一个对象。如果节点中没有包含最后子元素,将传回null。
使用范例:
objLastChild = xmlDoc.document.lement.lastChild;
alert(objLastChild);

nextSibling 属性
------------------
在目前文件节点的子节点列表中传回下一个兄弟节点。

基本语法:
objNextSibling = xmlDocNode.nextSibling;
说明:此属性是只读且传回一个对象。如果节点中没有包含其它的相关节点,会传回null。
使用范例:
objSibling = xmlDoc.document.lement.childNodes.item(1).nextSibling;
alert(objSibling);

nodeName 属性
---------------
传回代表目前节点名称的字符串。

基本语法:
strNodeName = xmlDocNode.nodeName ;
说明:传回一个字符串。这个属性是只读的,传回元素名称、属性或实体参照。
使用范例:
strNodeName = xmlDoc.document.lement.nodeName;
alert(strNodeName);

nodeType 属性
---------------
辨识节点的DOM 型态。

基本语法:
numNodeType = xmlDocNode.nodeType;
说明:此属性只读且传回一个数值。

有效的数值符合以下的型别:
1-ELEMENT
2-ATTRIBUTE
3-TEXT
4-CDATA
5-ENTITY REFERENCE
6-ENTITY
7-PI (processing instruction)
8-COMMENT
9-document.
10-document.nbsp;TYPE
11-document.nbsp;FRAGMENT
12-NOTATION
-------------------------------
使用范例:
numNodeType = xmlDoc.document.lement.nodeType;
alert(numNodeType);

nodevalue 属性
-----------------
传回指定节点相关的文字。
这并非一个元素中数据的值,而是与一个节点相关且未解析的文字,
就像一个属性或者一个处理指令。

基本语法:
varNodevalue = xmlDocNode.nodevalue;
说明:传回的文字代表以节点的nodeType 属性为主的型态值。
(请参考附录中的nodeType 属性。)
因为节点型态可能是几种数据型态中的一种,传回值也因此有差异。
传回null 的节点型态有:
document.ELEMENT、document.TYPE、document.FRAGMENT、
ENTITY、ENTITY REFERENCE,和NOTATION。
此属性可擦写。
使用范例:
varNodevalue = xmlDoc.document.lement.nodevalue;
alert(varNodevalue);

ondataavailable 属性
---------------------
指定一个事件来处理ondataavailable 事件。
(更多关于ondataavailable 事件的信息,
请参阅附录中<document对象事件>的部分)。

基本语法:
xmlDocNode.ondataavailable = value;
说明:此属性是唯写,允许文件作者一旦数据为可用,即可尽快的使用数据来运作。
使用范例:
xmlDoc.ondataavailable = alert("Data is now available.");


onreadystatechange 属性
------------------------
指定一个事件来处理onreadystatechange 事件。
这个事件能辨识readyState 属性的改变。

基本语法:
xmlDocNode.onreadystatechange = value;
说明:此属性是唯写的,允许文件作者指定当readyState 属性改变时呼叫事件。
使用范例:
xmlDoc.onreadystatechange =
alert("The readyState property has changed.");


ownerdocument属性
------------------------
传回文件的根节点,包含目前节点。


基本语法:
objOwnerDoc = xmldocument.ownerdocument.
说明:此属性是只读的,传回一个包含文件根节点的对象,包含特定的节点。
使用范例:
objOwnerDoc = xmlDoc.childNodes.item(2).ownerdocument.
alert(objOwnerDoc);


parentNode 属性
-----------------
传回目前节点的父节点。只能应用在有父节点的节点中。
 
基本语法:
objParentNode = xmldocument.ode.parentNode;
说明:此属性是只读的,传回包含指定节点的父节点对象。
如果此节点不存在于文件树中,将传回null。
使用范例:
objParentNode = xmlDoc.childNodes.item(1).parentNode;
alert(objParentNode);


parseError 属性
-----------------
传回一个DOM 解析错误对象,此对象描述最后解析错误的讯息。

基本语法:
objParseErr = xmldocument.parseError;
说明:此属性是只读的。如果没有错误发生,将传回0。
使用范例:
objParseErr = xmlDoc.parseError;
alert(objParseErr);


previousSibling 属性
---------------------
传回目前节点之前的兄弟节点。

基本语法:
objPrevSibling = xmldocument.previousSibling;
说明:传回一个对象,这个属性是只读的。若该节点没有包含前面的兄弟节点,会传回null。
使用范例:
objPrevSibling = xmlDoc.document.lement.childNodes.item(3).previousSibling
alert(objPrevSibling);


readyState 属性
-------------------
传回XML 文件资料的目前状况。

基本语法:
intState = xmldocument.readyState;
说明:这个属性是只读的,
传回值有以下的可能:
0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。
1-LOADING:加载程序进行中,但文件尚未开始解析。
2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。
3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。
4-COMPLETED:文件已完全加载,代表加载成功。
使用范例:
alert("The readyState property is " + xmlDoc.readyState);


url 属性
---------------
传回最近一次加载XML 文件的URL。

基本语法:
strDocUrl = xmldocument.url;
说明:这个属性是只读的,传回最近一次加载成功文件的URL,
若文件仅存在主存储器中(表示该文件并非由外部档案加载),则传回null
使用范例:
alert(xmlDoc.url);

validateOnParse 属性
----------------------
告诉解析器文件是否有效。

基本语法:
boolValidate = xmldocument.validateOnParse;
xmldocument.validateOnParse = boolValidate;
说明:此属性是可擦写的。
如果传回值为true,表示文件被解析时被确认是有效的。
如果传回false,表示文件是无效的,并被认为只是标准格式的(well-formed)文件。
使用范例:
xmlDoc.validateOnParse = true;
alert(xmlDoc.validateOnParse);

xml 属性
------------
传回指定节点的XML 描述和所有的子节点。

基本语法:
xmlvalue = xmldocument.ode.xml;
说明:此属性是只读的。
使用范例:
xmlvalue = xmlDoc.document.lement.xml;
alert(xmlvalue);


以下列出关于document对象可用的方法。
1. abort
2. appendChild
3. cloneNode
4. createAttribute
5. createCDATASection
6. createComment
7. createdocument.ragment
8. createElement
9. createEntityReference
10. createNode
11. createProcessingInstruction
12. createTextNode
13. getElementsByTagName
14. hasChildNodes
15. insertBefore
16. load
17. loadXML
18. nodeFromID
19. parsed
20. removeChild
21. replaceChild
22. selectNodes
23. selectSingleNode
24. transformNode


abort 方法
-------------
abort 方法取消一个进行中的异步下载。

基本语法:
xmldocument.abort();
说明:如果这个方法在异步下载时被呼叫,所有的解析动作会停止,
而且在内存中的文件会被释放。


AppendChild 方法
------------------
加上一个节点当作指定节点最后的子节点。

基本语法:
xmldocument.ode.appendChild(newChild);
说明:newChild 是附加子节点的地址。
使用范例:
docObj = xmlDoc.document.lement;
alert(docObj.xml);
objNewNode = docObj.appendChild(xmlDoc.document.lement.firstChild);
alert(docObj.xml);

cloneNode 方法
---------------
建立指定节点的复制。

基本语法:
xmldocument.ode.cloneNode(deep);
说明:deep 是一个布尔值。
如果为true,此节点会复制以指定节点发展出去的所有节点。
如果是false,只有指定的节点和它的属性被复制。
使用范例:
currNode = xmlDoc.document.lement.childNodes.item(1);
objClonedNode = currNode.cloneNode(1);
alert(objClonedNode.xml);


createAttribute 方法
------------------------
建立一个指定名称的属性。

基本语法:
xmldocument.createAttribute(name);
说明:name 是被建立属性的名称。
使用范例:
objNewAtt = xmlDoc.createAttribute("encryption");
alert(objNewAtt.xml);

createCDATASection 方法
------------------------
建立一个包含特定数据的CDATA。

基本语法:
xmldocument.createCDATASection(data);
说明:date 是一个字符串,且包含了被置放在CDATA 的资料。
使用范例:
objNewCDATA = xmlDoc.createCDATASection("This is a CDATA Section");
alert(objNewCDATA.xml);


createComment 方法
-------------------
建立一个包含指定数据的批注。

基本语法:
xmldocument.createComment(data);
说明:data 是一个字符串,且包含了被置放在批注的资料
使用范例:
objNewComment = xmlDoc.createComment("This is a comment");
alert(objNewComment.xml);


createdocument.ragment 方法
-----------------------------
建立一个空的文件片断对象。

基本语法:
xmldocument.createdocument.ragment();
说明:一个新的文件片断被建立,但没有加到文件树中。
要加入片断到文件树中,必须使用插入方法,
例如insertBefore、replaceChild 或 appendChild。
使用范例:
objNewFragment = xmlDoc.createdocument.ragment();
alert(objNewFragment.xml);

createElement 方法
--------------------
建立一个指定名称的元素。

基本语法:
xmldocument.createElement(tagName);
说明:tagName 是一个区分大小写的字符串来指定新元素名称。
使用范例:
objNewElement = xmlDoc.createElement("TO");
alert(objNewElement.xml);

createEntityReference 方法
-----------------------------
建立一个参照到指定名称的实体。


基本语法:
xmldocument.createEntityReference(name);
说明:name 是一个区分大小写的字符串,来指定新实体参照的名称。
一个新的实体参照被建立,但是并没有被加到文件树中。
若要将实体参照 加到文件树中,必须使用一种插入方法,
例如:insertBefore,replaceChild,或appendChild。
使用范例:
objNewER = xmlDoc.createEntityReference("eRef");
alert(objNewER.xml);


createNode 方法
----------------------
建立一个指定型态、名称,及命名空间的新节点。

基本语法:
xmldocument.createNode(type, name, nameSpaceURI);
说明:
type 用来确认要被建立的节点型态,
name 是一个字符串来确认新节点的名称,命名空间的前缀则是选择性的。
nameSpaceURI 是一个定 义命名空间URI 的字符串。
如果前缀被包含在名称参数中,此节点会在nameSpaceURI 的内文中以指定的前缀建立。
如果不包含前缀,指定的命 名空间会被视为预设的命名空间。
使用范例:
objNewNode = xmlDoc.createNode(1,"TO","");
alert(objNewNode.xml);

createProcessingInstruction 方法
--------------------------------
建立一个新的处理指令,包含了指定的目标和数据。

基本语法:
xmldocument.createProcessingInstruction(target, data);
说明:
target 是表示目标、名称或处理指令的字符串。
Data 是表示处理指令的值。
一个新的处理指令被建立,但是并没有加到文件树中。
要把处理指令加到文件树中,必须使用插入方法,
例如:insertBefore、replaceChild,或是appendChild。
使用范例:
objNewPI = xmlDoc.createProcessingInstruction(‘XML’, ‘version="1.0"’);
alert(objNewPI.xml);


createTextNode 方法
------------------------
建立一个新的text 节点,并包含指定的数据。

基本语法:
xmldocument.createTextNode(data);
说明:
data 是一个代表新text 节点的字符串。
一个新的text 节点被建立,但是没有加到文件树中。
若要将节点加到文件树中,必须使用插入 方法,
例如:insertBefore,replaceChild或appendChild。
使用范例:
objNewTextNode = xmlDoc.createTextNode("This is a text node.");
alert(objNewTextNode.xml);

getElementsByTagName 方法
-----------------------------
传回指定名称的元素集合。

基本语法:
objNodeList = xmldocument.getElementsByTagName(tagname);
说明:
tagname 是一个字符串,代表找到的元素卷标名称。
使用tagname "*"传回文件中所有找到的元素。
使用范例:
objNodeList = xmlDoc.getElementsByTagName("*");
alert(objNodeList.item(1).xml);


haschildnodes 方法
----------------------
如果指定的节点有一个或更多子节点,传回值为true。

基本语法:
boolvalue = xmldocument.ode.hasChildNodes() ;
说明:如果此节点有子节点传回值为true,否则传回false 值。
使用范例:
boolvalue = xmlDoc.document.lement.hasChildNodes();
alert(boolvalue);


insertBefore 方法
---------------------
在指定的节点前插入一个子节点。

基本语法:
objdocument.ode = xmldocument.ode.insertBefore(newChild,refChild);
说明:
newChild 是一个包含新子节点地址的对象,
refChild 是参照节点的地址。
新子节点被插到参照节点之前。
如果refChild 参数没有包含 在内,新的子节点会被插到子节点列表的末端。
使用范例:
objRefNode = xmlDoc.document.lement;
alert(xmlDoc.xml);
objNewNode = xmlDoc.createComment("This is a comment");
xmlDoc.insertBefore(objNewNode, objRefNode);
alert(xmlDoc.xml);


load 方法
--------------
表示从指定位置加载的文件。

基本语法:
boolvalue = xmldocument.load(url);
说明:
url 包含要被加载档案的URL 的字符串。
假如文件加载成功,传回值即为true。
若加载失败,传回值为false。
使用范例:
boolvalue = xmlDoc.load("Lst.xml");
alert(boolvalue);


loadXML 方法
----------------
加载一个XML 文件或字符串的片断。

基本语法:
boolvalue = xmldocument.loadXML(xmlString);
说明:xmlString 是包含XML 文字码的字符串。
这个字符串可以包含整个文件或者只是一个文件片断。
如果文件加载成功,传回值为true。
假如加载失败,传回值则是false。
使用范例:
xmlString = "<GREETING><MESSAGE>Hello!</MESSAGE></GREETING>";
boolvalue = xmlDoc.loadXML(xmlString);
alert(boolvalue);


nodeFromID 方法
------------------
传回节点ID 符合指定值的节点。

基本语法:
xmldocument.ode = xmldocument.nodeFromID(idString);
说明:
idString 是一个包含ID 值的字符串。
符合的节点必定是ID 型态。
若符合,将传回一个对象;若操作失败,则传回null。
使用范例:
objdocument.ode = xmlDoc.nodeFromID("TO");
alert(objdocument.ode);

parsed 方法
-------------
会验证该指定的节点(node)及其衍生的子节点(descendants)是否已被解析过。

基本语法:
boolvalue = xmldocument.ode.parsed();
说明:
如果全部的节点都已经被解析过了,则传回值为ture;
如果有任何一个节点尚未被解析,传回值则为false。
使用范例:
currNode = xmlDoc.document.lement.childNodes.item(0);
boolvalue = currNode.parsed();
alert(boolvalue);


removeChild 方法
-------------------
会将指定的节点从节点清单中移除。

基本语法:
objdocument.ode = xmldocument.ode.removeChild(oldChild);
说明:oldChild 为一个包含要被移除的节点对象。
使用范例:
objRemoveNode = xmlDoc.document.lement.childNodes.item(3);
alert(xmlDoc.xml);
xmlDoc.document.lement.removeChild(objRemoveNode);
alert(xmlDoc.xml);


replaceChild 方法
--------------------
置换指定的旧子节点为提供的新子节点。

基本语法:
objdocument.ode = xmldocument.ode.replaceChild(newChild,oldChild);
说明:
newChild 为包含新子节点的对象。
如果此参数为null,则此旧子节点会被移除而不会被取代。
oldChild 为包含旧子节点的对象。
使用范例:
objOldNode = xmlDoc.document.lement.childNodes.item(3);
objNewNode = xmlDoc.createComment("I've replaced the BCC element.");
alert(xmlDoc.xml);
xmlDoc.document.lement.replaceChild(objNewNode,objOldNode);
alert(xmlDoc.xml);


selectNodes 方法
--------------------
传回所有符合提供样式(pattern)的节点。

基本语法:
objdocument.odeList = xmldocument.ode.selectNodes(patternString);
说明:
patternString 为一包含XSL 样式的字符串。
此方法会传回节点清单对象,包含符合样式的节点。
如果没有符合的节点,则传回空的清单列表。
使用范例:
objNodeList=xmlDoc.selectNodes("/");
alert(objNodeList.item(0).xml);


selectSingleNode 方法
--------------------------
传回第一个符合样式的节点。

基本语法:
objdocument.ode = xmldocument.ode.selectSingleNode(patternString);
说明:
patternString 为一包含XSL 样式的字符串。
此方法会传回第一个符合的节点对象,如果没有符合的节点,则传回null。
使用范例:
objNode = xmlDoc.selectSingleNode("EMAIL/BCC");
alert(objNode.xml);


transformNode 方法
----------------------
使用提供的样式表来处理该节点及其子节点。

基本语法:
strTransformeddocument= xmldocument.ode.transformNode(stylesheet);
说明:
stylesheet 为一XML 文件或是片断包含负责节点转换工作的XSL 元素。
此方法会传回一包含转换结果的字符串。

使用范例:
var style = new ActiveXObject("Microsoft.XMLDOM");
style.load("Lst.xsl");
strTransform = xmlDoc.transformNode(style.document.lement);
alert(strTransform);

Document 对象的事件

下面列出来的是document对象可用的事件:
1. Ondataavailable
2. Onreadystatechange


Ondataavailable 事件
----------------------
此事件会在XML 文件有效时被触发。

基本语法:
此一事件有下面三种处理方式
. Inline:<element ondataavailable = handler>;
. Event property:object.ondataavailable = handler;
. Named script:<SCRIPT FOR = object EVENT = ondataavailable>;
说明:ondataavailable 事件只要一获得有效的数据就会被触发。
这项技术并未说明在这个文件中有多少数据是有效的。
使用范例:
xmlDoc.ondataavailable = alert('Data is now available.');


Onreadystatechange 事件
------------------------
这个事件会在readyState 属性内容改变时被触发。

基本语法:
此一事件有如下三种处理方式:
. Inline:<element onreadystatechange = handler>;
. Event property:object.onreadystatechange = handler;
. Named script:<SCRIPT FOR = object EVENT = onreadystatechange>;
-
说明:
onreadystatechange 事件在readyState 属性内容改变时就会被触发,
但这个事件并未说明「准备好」的状态是什么。
必须使用readyState 属性来取得现在的状态。
使用范例:
xmlDoc.onreadystatechange =
alert("The readyState property is" + xmlDoc.readyState); 

你可能感兴趣的:(常用方法)