Javascript编程小结(2 XML对象)

xml对象

nodeType

nodeType

Represents

1

Element: an HTML tag

2

Text: text in a document

8

Comment: an HTML comment

9

Document: the HTML document

 

事件:

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)

 

 

 

属性

async 属性

   

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

 

 

 基本语法

 boolValue XMLDocument.async;XMLDocument.async boolValue;

 

 

  

 布尔值是可擦写的(read/write),如果准许异步下载,值为True;反之则为False

 

 

  

xmlDoc.async  "false";
alert(xmlDoc.async);

 

 

 

attribute 属性

   

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

 

 

 基本语法

 objAttributeList = xmlNode.attributes;

 

 

  

 传回一个物件。如果此节点不能包含属性,则传回空值。

 

 

  

objAttList  xmlDoc.documentElement.attributes;
alert(objAttList);

 

 

 

childNodes 属性

   

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

 

 

 基本语法

 objNodeList=node.childNodes;

 

 

  

 传回一个物件。假如这节点没有子节点,传回null

 

 

  

objNodeList  xmlDoc.childNodes;
alert(objNodeList);

 

 

 

doctype 属性

   

 传回文件型态节点,包含目前文件的DTD。这节点是一般的文件型态宣告,例如,节点,名为EMAIL 的节点物件会被传回。

 

 

 基本语法

 objDocType=xmlDocument.doctype;

 

 

  

 传回一个对象,这个属性是只读的。假如这文件不包含DTD,会传回null

 

 

  

objDocType  xmlDoc.doctype;
alert(objDocType.nodeName);

 

 

 

documentElement 属性

   

 确认XML 文件的根(Root)节点。

 

 

 基本语法

 objDoc=xmlDocument.documentElement;

 

 

  

 回一个在单一根文件元素中包含数据的对象。此属性可读/写,如果文件中不包含根节点,将传回null

 

 

  

objDocRoot  xmlDoc.documentElement;
alert(objDocRoot);

 

 

 

firstChild 属性

   

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

 

 

 基本语法

 objFirstChild xmlDocNode.firstChild ;

 

 

  

 此属性只读且会传回一对象,如果节点中没有包含第一个子元素,将传回null

 

 

  

objFirstChild  xmlDoc.documentElement.firstChild;
alert(objFirstChild);

 

 

 

implementation 属性

   

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

 

 

 基本语法

 objImplementation xmlDocument.implementation;

 

 

  

 此属性只读且传回一个对象。

 

 

  

objImp  xmlDoc.implementation;
alert(objImp);

 

 

 

lastChild 属性

   

 确认目前节点中最后的子元素。

 

 

 基本语法

 objLastChild xmlDocNode.lastChild;

 

 

  

 此属性只读且传回一个对象。如果节点中没有包含最后子元素,将传回null

 

 

  

objLastChild  xmlDoc.documentElement.lastChild;
alert(objLastChild);

 

 

 

nextSibling 属性

   

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

 

 

 基本语法

 objNextSibling xmlDocNode.nextSibling;

 

 

  

 此属性是只读且传回一个对象。如果节点中没有包含其它的相关节点,会传回null

 

 

  

objSibling  xmlDoc.documentElement.childNodes.item(1) .nextSibling;
alert(objSibling);

 

 

 

nodeName 属性

   

 传回代表目前节点名称的字符串。

 

 

 基本语法

 strNodeName xmlDocNode.nodeName ;

 

 

  

 传回一个字符串。这个属性是只读的,传回元素名称、属性或实体参照。

 

 

  

strNodeName  xmlDoc.documentElement.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 TYPE
11-DOCUMENT FRAGMENT
12-NOTATION
 

 

 

  

numNodeType  xmlDoc.documentElement.nodeType;
alert(numNodeType);

 

 

 

nodeValue 属性

   

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

 

 

 基本语法

 varNodeValue xmlDocNode.nodeValue;

 

 

  

 传回的文字代表以节点的nodeType 属性为主的型态值。(请参考附录中的nodeType 属性。)因为节点型态可能是几种数据型态中的一种,传回值也因此有差异。传回null 的节点型态有:DOCUMENTELEMENTDOCUMENT TYPEDOCUMENT FRAGMENTENTITYENTITY REFERENCE,和NOTATION。此属性可擦写。

 

 

  

varNodeValue  xmlDoc.documentElement.nodeValue;
alert(varNodeValue);

 

 

 

ondataavailable 属性

   

 指定一个事件来处理ondataavailable 事件。

 

 

 基本语法

 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 xmlDocumentNode.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.documentElement.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 xmlDocumentNode.xml;

 

 

  

 此属性是只读的。

 

 

  

xmlValue  xmlDoc.documentElement.xml;
alert(xmlValue);

 

 

 

方法:

abort 方法

   

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

 

 

 基本语法

 xmlDocument.abort();

 

 

  

 如果这个方法在异步下载时被呼叫,所有的解析动作会停止,而且在内存中的文件会被释放。

 

 

  

xmlDocument

 

 

 

AppendChild 方法

   

 加上一个节点当作指定节点最后的子节点。

 

 

 基本语法

 xmlDocumentNode.appendChild(newChild);

 

 

  

 newChild 是附加子节点的地址。

 

 

  

docObj  xmlDoc.documentElement;
alert(docObj.xml);
objNewNode 
 docObj.appendChild(xmlDoc.documentElement. firstChild);
alert(docObj.xml);

 

 

 

cloneNode 方法

   

 

 

 

 基本语法

 xmlDocumentNode.cloneNode(deep);

 

 

  

 deep 是一个布尔值。如果为true,此节点会复制以指定节点发展出去的所有节点。如果是false,只有指定的节点和它的属性被复制。

 

 

  

currNode  xmlDoc.documentElement.childNodes.item(1);
objClonedNode 
 currNode.cloneNode(1);
alert(objClonedNode.xml);

 

 

 

createAttribute 方法

   

 建立一个指定名称的属性。

 

 

 基本语法

 xmlDocument.createAttribute(name);

 

 

  

 name 是被建立属性的名称。

 

 

  

objNewAtt  xmlDoc.createAttribute("encryption");
alert(objNewAtt.xml);

 

 

 

createCDATASection 方法

   

 

 

 

 基本语法

 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);

 

 

 

createDocumentFragment 方法

   

 建立一个空的文件片断对象。

 

 

 基本语法

 xmlDocument.createDocumentFragment();

 

 

  

 一个新的文件片断被建立,但没有加到文件树中。要加入片断到文件树中,必须使用插入方法,例如insertBeforereplaceChild appendChild

 

 

  

objNewFragment  xmlDoc.createDocumentFragment();
alert(objNewFragment.xml);

 

 

 

createElement 方法

   

 建立一个指定名称的元素。

 

 

 基本语法

 xmlDocument.createElement(tagName);

 

 

  

 tagName 是一个区分大小写的字符串来指定新元素名称。

 

 

  

objNewElement  xmlDoc.createElement("TO");
alert(objNewElement.xml);

 

 

 

createEntityReference 方法

   

 建立一个参照到指定名称的实体。

 

 

 基本语法

 xmlDocument.createEntityReference(name);

 

 

  

 name 是一个区分大小写的字符串,来指定新实体参照的名称。一个新的实体参照被建立,但是并没有被加到文件树中。若要将实体参照加到文件树中,必须使用一种插入方法,例如:insertBeforereplaceChild,或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 是表示处理指令的值。一个新的处理指令被建立,但是并没有加到文件树中。要把处理指令加到文件树中,必须使用插入方法,例如:insertBeforereplaceChild,或是appendChild

 

 

  

objNewPI xmlDoc.createProcessingInstruction(‘XML’, ‘version"1.0"’);
alert(objNewPI.xml);

 

 

 

createTextNode 方法

   

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

 

 

 基本语法

 xmlDocument.createTextNode(data);

 

 

  

 data 是一个代表新text 节点的字符串。一个新的text 节点被建立,但是没有加到文件树中。若要将节点加到文件树中,必须使用插入方法,例如:insertBeforereplaceChildappendChild

 

 

  

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 xmlDocumentNode.hasChildNodes() ;

 

 

  

 如果此节点有子节点传回值为true,否则传回false 值。

 

 

  

boolValue  xmlDoc.documentElement.hasChildNodes();
alert(boolValue);

 

 

 

insertBefore 方法

   

 在指定的节点前插入一个子节点。

 

 

 基本语法

 objDocumentNode xmlDocumentNode.insertBefore(newChild,refChild);

 

 

  

 newChild 是一个包含新子节点地址的对象,refChild 是参照节点的地址。新子节点被插到参照节点之前。如果refChild 参数没有包含在内,新的子节点会被插到子节点列表的末端。

 

 

  

objRefNode  xmlDoc.documentElement;
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("LstA_1.xml");
alert(boolValue);

 

 

 

loadXML 方法

   

 加载一个XML 文件或字符串的片断。

 

 

 基本语法

 boolValue xmlDocument.loadXML(xmlString);

 

 

  

 xmlString 是包含XML 文字码的字符串。

 

 

  

xmlString  "<GREETING><MESSAGE>Hello!</MESSAGE></GREETING>";
boolValue 
 xmlDoc.loadXML(xmlString);
alert(boolValue);

 

 

 

nodeFromID 方法

   

 传回节点ID 符合指定值的节点。

 

 

 

 基本语法

 xmlDocumentNode xmlDocument.nodeFromID(idString);

 

 

 

  

 idString 是一个包含ID 值的字符串。符合的节点必定是ID 型态。若符合,将传回一个对象;若操作失败,则传回null

 

 

 

  

objDocumentNode  xmlDoc.nodeFromID("TO");
alert(objDocumentNode);

 

 

 

 

parsed 方法

   

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

 

 

 基本语法

 boolValue xmlDocumentNode.parsed()

 

 

  

 如果全部的节点都已经被解析过了,则传回值为ture;如果有任何一个节点尚未被解析,传回值则为false

 

 

  

currNode  xmlDoc.documentElement.childNodes.item(0)
boolValue 
 currNode.parsed()
alert(boolValue)

 

 

 

removeChild 方法

   

 会将指定的节点从节点清单中移除。

 

 

 基本语法

 objDocumentNode xmlDocumentNode.removeChild(oldChild);

 

 

  

 oldChild 为一个包含要被移除的节点对象。

 

 

  

objRemoveNode  xmlDoc.documentElement.childNodes.item(3)
alert(xmlDoc.xml);
xmlDoc.documentElement.removeChild(objRemoveNode)

alert(xmlDoc.xml)

 

 

 

replaceChild 方法

   

 置换指定的旧子节点为提供的新子节点。

 

 

 基本语法

 objDocumentNode xmlDocumentNode.replaceChild(newChild,oldChild)

 

 

  

 newChild 为包含新子节点的对象。如果此参数为null,则此旧子节点会被移除而不会被取代。oldChild 为包含旧子节点的对象。

 

 

  

objOldNode  xmlDoc.documentElement.childNodes.item(3)
objNewNode 
 xmlDoc.createComment("I've replaced the BCC element.")
alert(xmlDoc.xml)

xmlDoc.documentElement.replaceChild(objNewNode,objOldNode)

alert(xmlDoc.xml)

 

 

 

selectNodes 方法

   

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

 

 

 基本语法

 objDocumentNodeList xmlDocumentNode.selectNodes(patternString)

 

 

  

 patternString 为一包含XSL 样式的字符串。此方法会传回节点清单对象,包含符合样式的节点。如果没有符合的节点,则传回空的清单列表。

 

 

  

objNodeListxmlDoc.selectNodes"/");
alert
objNodeList.item(0).xml);

 

 

 

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

   

 传回第一个符合样式的节点。

 

 

 基本语法

 objDocumentNode  xmlDocumentNode.selectSingleNode(patternString)

 

 

  

 patternString 为一包含XSL 样式的字符串。此方法会传回第一个符合的节点对象,如果没有符合的节点,则传回null

 

 

  

objNode  xmlDoc.selectSingleNode("EMAIL/BCC")
alert(objNode.xml)

 

 

 

transformNode 方法

   

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

 

 

 基本语法

 strTransformedDocument xmlDocumentNode.transformNode(stylesheet)

 

 

  

 stylesheet 为一XML 文件或是片断包含负责节点转换工作的XSL 元素。此方法会传回一包含转换结果的字符串。

 

 

  

var style  new ActiveXObject("Microsoft.XMLDOM")
style.load("LstA_49.xsl")

strTransform 
 xmlDoc.transformNode(style.documentElement)
alert(strTransform)

 

 

   

你可能感兴趣的:(JavaScript,编程,xml,null,encryption,stylesheet)