zoukankan      html  css  js  c++  java
  • JS读取xml数据,跨IE、Firefox

    看过很多资料,做过很多测试,ie上实现读取xml很容易,firefox就麻烦了,这是个什么原因?

    var xmlDoc;
    //code for IE
    if (window.ActiveXObject)

        xmlDoc 
    = new ActiveXObject("Microsoft.XMLDOM");
    }
     
    // code for Mozilla, Firefox, Opera, etc. 
    else if (document.implementation && document.implementation.createDocument) 
    //or else if(window.XMLHttpRequest)

        xmlDoc
    =document.implementation.createDocument("","",null); 
    }
     
    xmlDoc.async
    =false
    xmlDoc.load(
    "productClass.xml");
        

    上面是读取xml代码
    有一点:IE里可以把load()方法改成loadXML(),Firefox只能用load()
    看看结果:
    alert(xmlDoc);
    IE:给我们老老实实的弹出个[object]
    Firefox: 来个[object XMLDocument]
    显然,获取到的类型不同

    再来
    alert(xmlDoc.xml);
    IE:弹出了xml文件所有信息
    Firefox:undefined
    所以所谓的xmlDoc.loadXML(xmlDoc.xml.replace(/&lt;/g,"<").replace(/&gt;/g,">"));不能用了

    已经获取了对象了,只是对象类型不同,现在就是如果处理这个对象,怎么从这个对象取数据
    IE下一般使用selectNodes selectSingleNode 这些方法,而Firefox并没有这些方法,只能用xmlDoc.documentElementxmlDoc.childNodes[0]等死方法获取数据,然而从根节点获取子节点时就出现问题了,IE里获取子节点数为12,Firefox里却为25,用nodeName属性查看下,Firefox里多了很多莫名奇妙的元素(可能是我没搞清楚其中的缘由),不过如果你判断下nodeName的值还是可以获取到信息的。知道这点就好办了,现在问题是就是如果写个简单的通用方法获取xml信息。

    有待探讨。。。
  • 相关阅读:
    Installing — pylibmc 1.2.3 documentation
    Python-memcached的基本使用
    kindeditor在sae上传文件修改,适合php
    Kindeditor+web.py+SAE Storage 实现文件上传
    使用sae定时执行Python脚本
    Ueditor文本编辑器(新浪SAE平台版本)
    NicEdit
    Lind.DDD.LindMQ的一些想法
    Redis学习笔记~关于空间换时间的查询案例
    微信扫码支付~官方DEMO的坑~参数不能自定义
  • 原文地址:https://www.cnblogs.com/di305449473/p/1245305.html
Copyright © 2011-2022 走看看