Microsoft的XML解析器是与IE5及IE5以上版本的浏览器整合在一起的COM组件,安装了IE浏览器,就可以使用解析器解析XML文档了。但MSXML现在已经有五个不同的版本,所以在创建XMLDOM的时候最好使用工厂模式。
| function createDocument() { var aVersions = [ "MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom"]; for(var i=0;i < aVersions.length;i++) { try{ var XmlDoc = new ActiveXObject(aVersions[i]); return XmlDoc; } catch(oError){} } throw new Error("MSXML is not installed"); } var XmlDoc = createDocument(); |
| var strtemp = "Ajax$5.95"; strtemp += "Foundations of Ajax."; strtemp += "Ajax atterns$5.95"; strtemp += "Introduction of Ajax Patterns."; xmlDoc.loadXML(strtemp); |
|
XML DOM对象属性 | ||
|
属性 |
描述 | |
|
async |
设置或获取是否允许以异步方式载入XML文档 | |
|
attributes |
获取节点的属性列表 | |
|
childNodes |
获取节点的子节点列表 | |
|
doctype |
获取与文档关联的文档类型声明,不包含声明则返回null | |
|
documentElement |
获取在根节点中包含数据的对象,如果文件中不具有唯一根节点,返回null | |
|
firstChild |
获取节点中的首个子节点,如果不具有子节点则返回null | |
|
lastChild |
获取节点中的末个子节点,如果不具有子节点则返回null | |
|
nextSibling |
获取节点所在的节点列表中下一个节点 | |
|
nodeName |
获取节点的名称 | |
|
nodeType |
获取节点的类型,(参见下表) | |
|
nodeValue |
获取文本节点值 | |
|
ondataavailable |
设置处理ondataavailable事件的函数 | |
|
onreadystatechange |
获取处理onreadystatechange事件的函数 | |
|
parentNode |
获取节点的父节点,如果不具有父节点则返回null | |
|
parseError |
获取DOM解析错误对象,此对象描述最后解析错误的信息 | |
|
previousSibling |
获取节点所在的节点列表中上一个节点 | |
|
readyState |
获取XML文档的载入状态。状态值: | |
|
url |
传回最近一次加载XML文档的URL。若文档不由外部载入则返回null | |
|
validateOnParse |
告诉解析器文件是否有效 | |
|
xml |
获取节点的XML描述和所有的子节点 | |
|
Node节点类型说明 | ||
|
Document |
文件阶层中的根节点(DOM树的根节点) | |
|
Element |
一个元素 | |
|
Attr |
一个属性,注意:属性与其它节点类型不同,它们不是同一父节点的子节点 | |
|
ProcessingInstruction |
处理指令 | |
|
Comment |
注释 | |
|
Text |
处于一个元素或一个属性中的文本内容(字符数据) | |
|
CDATASection |
一块包含字符的文本区 | |
|
Entity |
实体 | |
|
XML DOM对象方法 | ||
|
abort() |
取消一个正在执行的异步下载 | |
|
appendChild(newNode) |
在当前节点末端添加一个子节点newNode | |
|
cloneNode(flag) |
复制当前节点,flag为true,复制整个节点,为false则只复制该节点及属性 | |
|
createAttribute(attrName) |
创建属性attrName | |
|
createCDATASection(data) |
创建包含指定数据的CDATA | |
|
createComment(data) |
创建包含指定数据的注释 | |
|
createDocumentFragment() |
创建空的文档片断 | |
|
createElement(tagName) |
创建元素tagName | |
|
createEntityReference(name) |
创建名称为name的实体参照 | |
|
createNode(type,name[,nsURL]) |
创建新节点,type为节点类型,name为节点名称,nsURL为命名空间 | |
|
createProcessingInstruction( |
创建处理指令,target为目标、名称或处理指令字符串,data为处理指令值 | |
|
createTextNode(data) |
创建文本节点,data为内容 | |
|
getElementsByTagName(tagName) |
获取标记为tagName的元素集合 | |
|
hasChildNodes() |
检查节点是否含有子节点 | |
|
insertBefore(newNode,theNode) |
在节点theNode前插入新节点newNode | |
|
load(url) |
载入url指定的一个XML文档 | |
|
loadXML(xmlString) |
载入xmlString指定的XML代码片段 | |
|
nodeFromID(id) |
取得ID为id的节点 | |
|
parsed() |
检查节点包括其子节点是否已被解析 | |
|
removeChild(theNode) |
删除节点的子节点theNode | |
|
replaceChild(newNode,oldNode) |
以节点newNode替换节点oldNode | |
|
selectNodes(patternString) |
取得所有匹配模式patternString的节点 | |
|
selectSingleNode(patternString) |
取得首个匹配模式patternString的节点 | |
|
transformNode(styleSheet) |
以样式表styleSheet来处理节点及其子节点 | |