XML DOM介绍 一、XML DOM简介
DOM(Document Object Model,文档对象模型)是一种应用程序接口(API)的应用,它将文档(如XML文档,HTML文档等)看成是一个文档对象,然后通过程序语言(如JavaScript等脚本语言,C++等)调用该文档对象,对文档中的数据进行存取,并利用程序对获取的数据进行跟进一步的处理。 XML DOM是将XML文档以DOM方式包装,通过DOM技术,应用程序即可很容易地提取XML文档中的数据。 二、XML DOM对象IE实现了对XML DOM技术的支持,提供了五个可以在脚本程序中调用的XML DOM对象: (1) XMLDOMDocument 该对象代表整个XML文档,它具有多种属性和方法来获取或创建其他XML DOM对象。 (2) XMLDOMNode 该对象可以代表XML文档的根元素以及根元素下的各个节点。它支持数据类型、名域、DTD和Schema,并且以此扩展核心的XML DOM节点接口。 (3) XMLDOMNodeList 该对象代表XML文档中一系列节点组成的一个节点列表,并且支持对该列表的遍历。 (4) XMLDOMNamedNodeMap 该对象支持名域和对属性集的遍历。 (5) XMLDOMParseError 该对象用于返回最近一次解析错误的详细信息,包括错误号、错误所在行、错误所在字符位置以及对错误的一个描述文本。 三、XML DOM属性XML DOM文档的遍历与HTML DOM的遍历非常类似,因为它们都是节点层次的结构。节点树的最顶部是documentElement属性,包含文档的根元素。使用下表中所列出的属性,可以访问文档中任何元素或属性。 表4-1 XML DOM属性
四、XML DOM实例
以下实例,讲解如何读取xml文件(支持IE和FireFox),并访问节点中的信息: XML文件:Example1.xml <?xml version="1.0" encoding="gb2312"?> <!--作为操作对象的XML文档--> <根元素> <第2层> <第3层>我是第三层元素集合中的第1个元素</第3层> <第3层>我是第三层元素集合中的第2个元素</第3层> </第2层> </根元素> HTML文件:readXML.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www./TR/html4/loose.dtd"> <html> <head> <title>读取XML文件,并访问节点信息</title> <script language="JavaScript" for="window" event="onload"> <!-- function createDocument() { var aVersions = [ "MSXML2.DOMDocument.6.0","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 oXmlDom = new ActiveXObject(aVersions[i]); return oXmlDom;//支持最新的版本 } catch (oError) { // 不做任何处理 } } throw new Error("MSXML is not installed."); }
var XMLdoc; var XMLroot;
if(typeof(window.ActiveXObject) != ‘undefined‘){// 支持IE浏览器 XMLdoc = createDocument(); XMLdoc.async="false"; XMLdoc.load("Example1.xml"); XMLroot=XMLdoc.documentElement; L2=XMLroot.childNodes.item(0); L3_Node0=L2.firstChild; strA=L3_Node0.nodeName; strB=L3_Node0.text; Text0.innerText=strA+" "+strB; L3_Node1=L2.lastChild; strA=L3_Node1.nodeName; strB=L3_Node1.text; Text1.innerText=strA+" "+strB; }else if(document.implementation && document.implementation.createDocument){// 支持Mozilla Firefox浏览器
XMLdoc = document.implementation.createDocument("", "doc", null); XMLdoc.async="false"; XMLdoc.load("Example1.xml"); XMLdoc.onload=function(){ x=XMLdoc.getElementsByTagName(‘第3层‘);
L3_Node0=x.item(0); strA=L3_Node0.nodeName; strB=L3_Node0.childNodes[0].nodeValue; document.getElementById("Text0").textContent=strA+" "+strB;
L3_Node1=x.item(1); strA=L3_Node1.nodeName; strB=L3_Node1.childNodes[0].nodeValue; document.getElementById("Text1").textContent=strA+" "+strB; } } //--> </script> </head> <body> <h3 align="center">读取XML文件,并访问节点信息<hr/></h3> <h4>第三层的的第一个节点:</h4> <div id="Text0" style="font-family:华文楷体;color:red;"></div> <h4>第三层的的第二个节点:</h4> <div id="Text1" style="font-family:黑体;color:blue;"></div> </body> </html> 参考资料:《XML网页开发实例教程》 机械工业出版社 尹泉等编著 网上资料 |
|