JavaScript中装载XML文档

  • 时间:2018-06-28 22:31 作者:程序员小新人学习 来源:程序员小新人学习 阅读:356
  • 扫一扫,手机访问
摘要:IE和FierFox浏览器对于这装载同域的XML文件和装载XML字符串这两种情况,分别有各自的解决方式。IE的解析器支持XML文件和XML字符串的加载,而火狐浏览器用单独的解析器把XML载入内存,而后转换为可通过JS访问的XML DOM对象。以下是js代码:pre class="brush:js;t

IE和FierFox浏览器对于这装载同域的XML文件和装载XML字符串这两种情况,分别有各自的解决方式。IE的解析器支持XML文件和XML字符串的加载,而火狐浏览器用单独的解析器把XML载入内存,而后转换为可通过JS访问的XML DOM对象。

以下是js代码:

pre class="brush:js;toolbar:false">/* * 封装IE和Firefox类浏览器中装载同域XML或者XML字符串的方法, * @param flag true表示装载XML的文件,false表示装载XML的字符串 * @param xmldoc flag为true表示XML文件的路径,flag为false表示XML字符串 */ function loadXML(flag,xmldoc){ if(window.activeXObject) { //IE浏览器 //创立空的XML对象 var activexName = ["MSXML2.DOMDdcument","Miscrosoft.XmlDom"]; var xmlObj; for(var i = 0; i < actviexName.length;i++){ try{ xmlObj = new ActiveXObject(activeName[i]); break; }catch(e){ } } if(xmlObj){ //同步方式装载XML数据,确保在文档完全加载之前解析器不会继续脚本的执行 xmlObj.async = false; if(flag){ //load使用于加载文件,loadXML使用于加载字符串 //装载XML文件 xmlObj.load(xmldoc); }else{ //装载XML的字符串 xmlObj.loadXML(xmldoc); } //返回根节点 return xmlObj; //返回根元素节点 return xmlObj.documentElement; }else{ alert("装载XML文档的对象创立失败"); return null; } }else if(document.implementation.creatDocument){ //针对Firefox类浏览器 var xmlObj; if(flag){ //装载XML文件 //先创立一个空的xml dom对象 xmlObj = document.implementation.creatDocument("","",null); if(xmlObj){ //同步方式进行装载 xmlObj.async = false; xmlObj.load(xmldoc); return xmlObj.documentElement; }else{ alert("装载XML文档的对象创立失败"); return null; } }else{ //装载XML的字符串 //创立一个dom解析器 xmlObj = new DOMParser(); //把xml字符串解析成要返回的dom对象 var docRoot = xmlObj.parerFromString(xmldoc,"test/xml"); return docRoot.documentElement; } } alert("装载XML文档的对象创立失败"); return null;}

html代码

pre class="brush:js;toolbar:false"> TODO supply a title

XML页内容

pre class="brush:js;toolbar:false"> 木子松就是我,我就是木子松

总结

对于装载同域的XML文件,IE浏览器和火狐类浏览器都是先创立一个空的XML文档对象,而后使用“xmlDoc.load(“**.xml”)”告知解析器加载名为**.xml的XML文档

对于装载XML字符串,IE浏览器和装载XML文件的方式一样,利使用微软内建的解析器加载XML字符串;而火狐类浏览器,则是通过"var parser = new DOMParser()"创立dom解析器,而后利使用方法parserFromString()加载 XML字符串。另外DOMParser对象的load()方法可使用于加载文件。

跨域访问处于安全方面的起因,现在的浏览器不允许跨域访问。假如想跨域访问,则必需把XML文件放到自己的服务器上,否则,xmlDoc.load()将产生错误“Access is denied”。

JavaScript中装载XML文档

  • 全部评论(0)
最新发布的资讯信息
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
【系统环境|windows】初识webRTC(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部