词条 | xmldom |
释义 | 读取、更新、创建和处理一个XML文档,需要一个XML parser(语法分析器). 一、微软的XML Parser 微软的XML Parser是一个COM组件,它是随ie5及以上一起的。一但你安装了ie,那么这个分析器对脚本就 是有效的。 微软的XML Parser提供了所有必须的函数来访问结点以及它们的属性以及插入、删除结点和转换结点树到 XML。 下面列出了通常为微软的XML Parser所支持的结点类型: 结点类型 例子 处理指令 <?xml version="1.0"?> 元素 <drink type="beer">Carlsberg</drink> 属性 type="beer" 文本 Carlsberg MSXML Parser 2.5是和Windows2000、ie5.5一起的 MSXML Parser 3.0是和Windowsxp、ie6.0一起的 MSXML Parser 3.0的特点: 1、支持Javascrīpt, VBscrīpt, Perl, VB, Java, C++等 2、完全支持XML 3、完全支持DOM和名字空间 4、DTD及确认 5、完全支持XSLT和XPath 6、支持SAX2 7、Server-safe HTTP 用Javascrīpt来创建Microsoft's XML parser实例的代码如下: var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") 用VBscrīpt来创建Microsoft's XML parser实例的代码如下: set xmlDoc=CreateObject("Microsoft.XMLDOM") 在ASP页创建Microsoft's XML parser实例的代码如下: set xmlDoc=Server.CreateObject("Microsoft.XMLDOM") 下面的代码装载一个XML文档(note.xml)到Microsoft's XML parser中: <scrīpt type="text/javascrīpt"> var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("note.xml") ... ... ... </scrīpt> 说明: xmlDoc=new ActiveXObject("Microsoft.XMLDOM")创建一个 Microsoft XML parser的实例。 xmlDoc.load("note.xml")告诉语法分析器去装载一个名为note.xml的XML文档。 xmlDoc.async="false"关闭异步装载,以便于等到XML文档完全装载后分析器才继续脚本的执行。 二、Mozilla Browsers的XML Parser 一个简单的XML文档在Mozilla Browsers中以类似树的结构显示(像ie),Mozilla 也支持Javascrīpt, 被分析的数据能够显示为HTML。 在Mozilla Browsers中用Javascrīpt来创建Microsoft's XML parser实例的代码如下: var xmlDoc=document.implementation.createDocument("ns","root",null) 说明: "ns"定义XML文档所使用的名字空间; "root"是XML的根元素; null是第三个参数,必须是null。 下面的代码装载note.xml到Mozillas' XML parser中: <scrīpt type="text/javascrīpt"> var xmlDoc=document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); ... ... ... </scrīpt> 说明类似MSXML Parser。 三、一个跨浏览器的代码 <html> <head> <scrīpt type="text/javascrīpt"> var xmlDoc function loadXML() { //load xml file // code for IE if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load("note.xml"); getmessage() } // code for Mozilla, etc. else if (document.implementation && document.implementation.createDocument) { xmlDoc= document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); xmlDoc.onload=getmessage } else { alert('Your browser cannot handle this scrīpt'); } }function getmessage() { document.getElementById("to").innerHTML= xmlDoc.getElementsByTagName("to")[0].firstChild.nodeValue document.getElementById("from").innerHTML= xmlDoc.getElementsByTagName("from")[0].firstChild.nodeValue document.getElementById("message").innerHTML= xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue } </scrīpt> </head><body bgcolor="yellow"> <h1>W3Schools Internal Note</h1> To: [font id="to"][/font] From: [font id="from"][/font] <hr /> Message: [font id="message"][/font] </body> </html> 四、装载XML文本到语法分析器中 ie支持两种方法装载XML: load():装载XML文件 loadXML():一个包含XML代码的文本字符串 下面是一个loadXML()的例子: <scrīpt type="text/javascrīpt"> var txt="<note>" txt=txt+"<to>Tove</to><from>Jani</from>" txt=txt+"<heading>Reminder</heading>" txt=txt+"<body>Don't forget me this weekend!</body>" txt=txt+"</note>" var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.loadXML(txt) ... ... ...</scrīpt> |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。