正文

XML Parser2006-05-26 15:05:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zzjcs1971/14907.html

分享到:

XML Parser 读取、更新、创建和处理一个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、支持JavaScript, VBScript, Perl, VB, Java, C++等2、完全支持XML3、完全支持DOM和名字空间4、DTD及确认5、完全支持XSLT和XPath6、支持SAX27、Server-safe HTTP   用JavaScript来创建Microsoft's XML parser实例的代码如下:var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") 用VBScript来创建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中: <script type="text/javascript">var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")xmlDoc.async="false"xmlDoc.load("note.xml").........</script>说明: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 也支持JavaScript, 被分析的数据能够显示为HTML。 在Mozilla Browsers中用JavaScript来创建Microsoft's XML parser实例的代码如下:var xmlDoc=document.implementation.createDocument("ns","root",null) 说明:"ns"定义XML文档所使用的名字空间;"root"是XML的根元素;null是第三个参数,必须是null。 下面的代码装载note.xml到Mozillas' XML parser中: <script type="text/javascript">var xmlDoc=document.implementation.createDocument("","",null);xmlDoc.load("note.xml");.........</script> 说明类似MSXML Parser。 三、一个跨浏览器的代码 <html><head><script type="text/javascript">var xmlDocfunction loadXML(){//load xml file// code for IEif (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 script');}}function getmessage(){document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].firstChild.nodeValuedocument.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].firstChild.nodeValuedocument.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue}</script></head><body onload="loadXML()" bgcolor="yellow"><h1>W3Schools Internal Note</h1><p><b>To:</b> <span id="to"></span><br /><b>From:</b> <span id="from"></span><hr /><b>Message:</b> <span id="message"></span></p></body></html> 四、装载XML文本到语法分析器中 ie支持两种方法装载XML:load():装载XML文件loadXML():一个包含XML代码的文本字符串 下面是一个loadXML()的例子: <script type="text/javascript"> 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).........</script>      

阅读(7716) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册