加格达奇信息网
体育
当前位置:首页 > 体育

解析XML文件跨浏览器的实例

发布时间:2019-10-09 14:56:49 编辑:笔名

10:33 来源:页教学 :阿小【纠错】人评论

A-A+ 怎么开淘宝店 站优化方法 创业如何获得投资 小米note顶配版评测 最新LOL活动

如需读取、更新、创建或者操作某个XML文档,则需要XML解析器。

实例

解析XML文件 - 跨浏览器的实例

本例是一个跨浏览器的实例,把某个XML文档(l)载入XML解析器。

以下为引用的内容:htmlbodyscript type=text/vbscriptset xmlDoc=CreateObject(LDOM)ync=ad(/example/xmle/xmle_xml_l)ite(h1Traversing the XML nodes/h1)for each x in ite(b dename /b)ite(: )ite(xt)ite(brbr)next/script/body/html

解析XML字符串 - 跨浏览器的实例

本例是一个跨浏览器的实例,展示如何载入并解析某个XML字符串。

以下为引用的内容:htmlbodyscript type=text/javascriptvar xmlDoc = new ActiveXObject(LDOM)ync=ad(/example/xmle/xmle_xml_l)ite(The first XML element in the file contains: )ite(em(0).text)/script/body/html

解析一个XML文档

如需操作某个XML文档,您需要XML解析器。解析器会将文档载入电脑的内存中。一旦文档被载入,可使用DOM对其数据进行操作。DOM把XML作为一颗树来处理。

微软的XML解析器与Mozilla浏览器中使用的解析器是有差异的。在本教程中,我们会为您展示如何创建可工作于IE和Mozilla浏览器中的跨浏览器脚本。

微软的XML解析器

微软的XML解析器是存在于IE 5.0或更高版本中的COM组件。一旦你安装了IE,就可使用脚本来利用解析器了。

微软的XML解析器支持所有必要的功能,来遍历节点树,访问节点以及它们的属性值,插入并删除节点,并将节点数转换回XML。

如需创建微软XML解析器的一个实例,请使用下面的代码:

以下为引用的内容: JavaScript:var xmlDoc=new ActiveXObject(LDOM);VBScript:set xmlDoc=CreateObject(LDOM)ASP:set xmlDoc=eateObject(LDOM)下面的代码段可向微软的XML解析器载入一个已有的XML文档(l):

var xmlDoc=new ActiveXObject(LDOM);ync=false;ad(l);

上面的脚本的第一行创建了XML解析器的一个实例。第二行关闭了同步载入,这样可以确保在文档被完全载入前解析器不会继续执行。第三行会告知解析器载入名为l的XML的文档。

Mozilla、Firefox以及Opera中的XML解析器

Mozilla浏览器的XML解析器支持所有必要的功能,来遍历节点树,访问节点以及它们的属性值,插入并删除节点,并将节点树转换回XML。

如需创建Mozilla浏览器的XML解析器的一个实例,请使用下面的代码:

以下为引用的内容:JavaScript:var xmlDoc=eateDocument(nsrootnull);

第一个参数,ns,定义用于XML文档的命名空间(namespace)。第二个参数,root,是XML文件中的XML根元素。第三个参数,null,一般总是null,这是由于目前还没有用到这个参数。

下面的代码段可向Mozilla浏览器的XML解析器载入一个已有的XML文档(l):

以下为引用的内容:var xmlDoc=eateDocument(null);ad(l);

上面的脚本的第一行创建了XML解析器的一个实例。第二行会告知解析器载入名为l的XML的文档。

解析某个XML文件 - 跨浏览器的实例

下面的例子是一个跨浏览器的实例,向XML解析器载入了某个已有的XML文档(l):

以下为引用的内容:htmlheadscript type=text/javascriptvar xmlDoc;function loadXML(){// 用于 IE 的代码:if (tiveXObject) { xmlDoc=new ActiveXObject(LDOM); ync=false; ad(l); getmessage(); }// 用于 Mozilla Firefox Opera 等浏览器的代码:else if (plementation eateDocument) { xmlDoc=eateDocument(null); ad(l); load=getmessage; }else { alert('Your browser cannot handle this script'); }}function getmessage(){tElementById(to).innerHTML=tElementsByTagName(to)[0].childNodes[0].nodeValue;tElementById(from).innerHTML=tElementsByTagName(from)[0].childNodes[0].nodeValue;tElementById(message).innerHTML=tElementsByTagName(body)[0].childNodes[0].nodeValue;}/script/headbody onload=loadXML()h1W3Schools Internal Note/h1pbTo:/b span id=to/spanbr /bFrom:/b span id=from/spanbr /bMessage:/b span id=message/span/p/body/html

输出:

以下为引用的内容:W3Schools Internal NoteTo: ToveFrom: JaniMessage: Don't fet me this weekend!

重要的注释

如需从某个XML元素(比如fromJani/from)中提取文本(比如Jani),请使用下面的语法:

getElementsByTagName(from)[0].childNodes[0].nodeValue

重要事项:getElementsByTagName会返回一个节点数组。此数组含有XML文档中拥有指定名称的所有元素。在这例子中,只有一个from元素,但是仍然需要设定数组的下标( [0] )。

解析一个XML字符串 - 跨浏览器的实例

下面的代码是一个跨浏览器的实例,向我们展示了如何加载和解析某个XML字符串:

以下为引用的内容:htmlbodyscript type=text/javascriptvar text=note;text=text+toTove/to;text=text+fromJani/from;text=text+headingReminder/heading;text=text+bodyDon't fet me this weekend!/body;text=text+/note;// 用于 IE 的代码:if (tiveXObject) { var doc=new ActiveXObject(LDOM); ync=false; adXML(text); }// 用于 Mozilla Firefox Opera 等浏览器的代码:else { var parser=new DOMParser(); var doc=rseFromString(texttext/xml); }// documentElement 提交根元素:var x=cumentElement;ite(Text of first child element: );ite(ildNodes[0].childNodes[0].nodeValue);ite(br /);ite(Text of second child element: );ite(ildNodes[1].childNodes[0].nodeValue);/script/body/html

输出:

以下为引用的内容:Text of first child element: ToveText of second child element: Jani

注释:Inter Explorer使用loadXML()方法解析XML字符串,而Mozilla浏览器使用DOMParser对象。

查看更多相似文章

赣州白癜风
广西牛皮癣医院哪家好
云浮治疗妇科方法
赣州白癜风好的医院
广西牛皮癣医院哪家最好