时间:2021-05-26
首先介绍简单的理论:
对于XML,我们可以理解它是一种树结构,它包含根,元素,属性,文本等内容。不同浏览器都有自己的解析器,把XML读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。
微软的 XML 解析器与其他浏览器中的解析器是有差异的。微软的解析器支持对 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都含有遍历 XML 树、访问、插入及删除节点的函数。
如果你使用的是一个本地文件或者网络文件且该文件在是在本服务器,那么对于IE和其他浏览器来说都可以通过load(uRl),loadXML(strXML)来创建Xdom对象。但是对于文本,除IE外需要一个单独的解析器来处理。
以下函数用于根据不同的浏览器来创建Xdom对象:
function loadXMLDoc() { var xmlDoc; // code for IE if (window.ActiveXObject){ xmlDoc=new ActiveXObject("Microsoft.XMLDOM");//创建空的微软 XML 文档对象 //xmlDoc.load(uRl); //loadXML() 方法用于加载字符串(文本),而 load() 用于加载文件 xmlDoc.loadXML(xmlstr); } // code for Mozilla, Firefox, Opera, etc. else if(document.implementation&&document.implementation.createDocument){ xmlDoc=document.implementation.createDocument("","",null); //xmlDoc.load(uRl); //Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象 parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); }else{ alert('Your browser cannot handle this script'); } //关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本 xmlDoc.async=false; createTable(xmlDoc); }方法内有具体的解析,我不再啰嗦,对于解析的内容,分为字符串和文本两种。
首先定义一个字符串:
var xmlstr="<?xml version=\"1.0\" encoding=\"UTF-8\"?><goodss><goods id=\"1\"><name>数码相机</name><price>3206(元)</price></goods><goods id=\"2\"><name>联想笔记本电脑</name><price>3206(元)</price></goods></goodss>";
然后定义一个goods.xml文件:
文件内容为:
<?xml version="1.0" encoding="UTF-8"?> <goodss> <goods id="1"> <name>数码相机</name> <price>3206(元)</price> </goods> <goods id="2"> <name>联想笔记本电脑</name> <price>3206(元)</price> </goods> </goodss>通过取消和注释方式来选择是文本还是字符串。
这个方法可以是通用的,下面再来解析这个Xdom对象:
function createTable(xmldoc){ var goodss=xmldoc.getElementsByTagName("goods"); for(var i=0;i<goodss.length;i++){ var g=goodss[i]; if (g.nodeType==1){ var name=g.getElementsByTagName("name")[0].childNodes[0].nodeValue; var price=g.getElementsByTagName("price")[0].childNodes[0].nodeValue; var id=g.getAttribute("id"); document.write(id + "-->" + name + "-->" + price); document.write("<br />"); } } }对于使用到的函数和属性我们来解析一下:
早页面增加一个按钮来调用函数:
<input type="button" name="bxml" value="Read" onclick="loadXMLDoc()" />
页面将会输出XMl内节点的属性和子节点的内容。对于一般应用来说,我觉得上面内容已经足够了。我会在之后补充一些其他操作。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JS解析XML文件loadXML=function(xmlFile){varxmlDoc=null;//判断浏览器的类型//支持IE浏览器if(!window.
由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究。不同的浏览器对xml
原因分析:旺旺使用过程会调用IE浏览器,浏览器配置错误会导致旺旺显示异常,网络DNS解析错误,也会有此问题。软件本身损坏也可导致此问题。软件名称:阿里旺旺ali
本文是小编日常收集整理些js经典实例,特此分享到平台供大家参考!跨浏览器添加事件//跨浏览器添加事件functionaddEvent(obj,type,fn){
1跨域的理解跨域是指:浏览器A从服务器B获取的静态资源,包括Html、Css、Js,然后在Js中通过Ajax访问C服务器的静态资源或请求。即:浏览器A从B服务器