`

ie无法使用jquery解析xml(转)

 
阅读更多

 

功能描述:使用jQuery解析已经定义好内容的xml文件

1.xml文件:menu.xml

<?xml version="1.0" encoding="gb2312"?>
<menus>
    <menu>
        <id>1</id>
        <name>system</name>
        <parentId>0</parentId>
        <target>mainFrame</target>
        <url></url>
    </menu>
    <menu>
        <id>2</id>
        <name>company</name>
        <parentId>1</parentId>
        <target>mainFrame</target>
        <url></url>
    </menu>
</menus>

 2.自定义js文件解析xml文件:index.js

$(document).ready(function(){
    $.ajax({
           url:"xml/menu.xml ",
           type:"POST", 
           dataType:"xml",
           success:function(data){
                      $(data).find("menu").each(function(){
                               alert("success");
                               alert($(this).text());
                      });
           },
           error:function(data){
                     alert("fail:");
           }
    });
});
 3.新建index.html文件引入jQuery.js、xml文件及index.js文件,在ie中(任何版本)运行index.html,结果总是弹出“fail”,但是在Firefox中的结果却是“success”。

在网上搜了很多资料,最后在这篇文章http://www.newmediafun.com/2009/07/parsing-xml-with-jquery-in-internet-explorer/上找到了解决方案。是因为ie中的限制无法正确解析xml文件,它解析出的是一个text对象(在我引用的文章中有更详细的解释)所以针对这个加入判断就可以解决了

正确代码index.js

$(document).ready(function(){
    $.ajax({
         url:"xml/menu.xml",
         type:"POST", 
         dataType:($.browser.msie) ? "text" : "xml",
         success:function(data){
                var xml;
                if( typeof data == "string" ){
                         xml = new ActiveXObject("Microsoft.XMLDOM");
                         xml.async = false;
                         xml.loadXML(data);
                } else {
                         xml = data; 
                }
              $(xml).find("menu").each(function(){
                  alert("success");
                  alert($(this).text());
              });
        },
       error:function(data){
               alert("fail:");
       }
    });
});
 

 

 

分享到:
评论

相关推荐

    js的XML解析器 可以解析XMl文件和XML字符串

    - **ActiveXObject(IE专属)**:在旧版的Internet Explorer中,可以使用ActiveXObject来创建XMLHttpRequest或MSXML2.DOMDocument对象解析XML。 3. **XML字符串解析** - JavaScript可以解析XML字符串,这在接收到...

    兼容IE,firefox jquery 创建XML

    本文将深入探讨如何使用jQuery在Internet Explorer(IE)和Firefox这两个主要浏览器中创建XML,以及相关的JavaScript(js)技术。 首先,我们需要理解XML(eXtensible Markup Language),它是一种用于存储和传输...

    jQuery行级解析读取XML文件

    这是我在做项目时的测试源码,利用jQuery的Ajax功能读取XML文件中指定行的数据。在IE6+和FireFox 3.0+浏览器上测试都完美通过。下载源码包后直接解压到你的网站根目录即可进行测试。详细代码说明请浏览关于此源码包...

    jquery读取xml.pdf

    知识点五:读取本地XML文件和解析XML数据 文件中还包含了解析本地XML文件的示例。通过$.ajax()方法,设置url为本地XML文件的路径,并指定dataType为'xml'。在success回调函数中,通过jQuery的选择器和方法,例如....

    jQuery+xml三级联动

    2. **解析XML**:遍历XML文档,提取出所有级别的数据。可以使用`getElementsByTagName`等方法来获取特定类型的节点。 3. **创建初始选择框**:根据XML中的第一级数据(省份),创建并填充第一个下拉框。 4. **事件...

    JS解析XML适用于不用的浏览器

    对于支持XMLHttpRequest(XHR)的现代浏览器(如IE7+、Firefox、Chrome、Safari等),可以使用`XMLHttpRequest`对象的`responseXML`属性来解析XML响应。例如: ```javascript var xhr = new XMLHttpRequest(); xhr....

    使用jQuery.parseXML()时IE XML5633错误

    例如,可以先使用IE的ActiveXObject尝试解析XML,如果失败再使用`jQuery.parseXML()`。 6. **更新或更换浏览器**:尽管这是一个技术解决方案,但提醒用户升级到较新的浏览器版本或者使用非IE浏览器,可以避免许多...

    js解析xml案例用层布局

    1. **JavaScript解析XML**:在JavaScript中,可以使用`DOMParser`对象或者`ActiveXObject`(仅限于IE浏览器)来解析XML文档。`DOMParser`是W3C标准,支持所有现代浏览器。例如: ```javascript var parser = new DOM...

    jQuery创建及操作xml格式数据示例

    使用jQuery创建XML数据,可以通过jQuery的parseXML方法来解析一个字符串形式的XML文档。示例代码如下: ```javascript var xmlDom = $($.parseXml("&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;root&gt;&lt;person&gt;...

    jQuery针对IE浏览器低版本测试代码

    5. **JSON支持**:IE7及以下版本没有内置的JSON解析和序列化,jQuery提供了相应的处理方式。 在压缩包文件`texiao3868_1560680865`中,可能包含了一系列针对IE低版本的jQuery测试脚本和示例,这些脚本可能涉及到...

    JS读取XML字符串形成树

    2. `ActiveXObject`(仅限IE浏览器):在Internet Explorer中,我们可以使用`ActiveXObject`来解析XML,但这种方法已不再推荐,因为它不适用于现代浏览器。 解析XML后,我们可以通过遍历DOM树来构建一个树形结构。...

    Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)

    在这个例子中,我们将探讨如何使用JavaScript通过AJAX技术解析XML文档,同时兼容Firefox和Internet Explorer(IE)这两种不同的浏览器。 首先,我们需要创建一个函数`getResult`,它接收两个参数:一个是XML数据的...

    JavaScript解析XML的方法总结.

    在给定的文件中,主要讨论了如何使用JavaScript来解析XML文件,并提供了一个具体的例子。以下是对这些关键方法的详细解释: #### 1. 加载XML文件 JavaScript解析XML的第一步是加载XML文件。这通常通过创建一个XML...

    js操作XML文件(兼容FF,IE)

    为确保在Firefox和IE之间兼容,可以使用条件注释或库(如jQuery,它提供了跨浏览器的API)。例如,使用条件注释来针对IE使用`ActiveXObject`,否则使用`DOMParser`: ```javascript if (window.ActiveXObject) {...

    JQuery生成静态柱状图实例IE6\7\8,FF兼容

    "sample.xml"可能包含了柱状图的数据,XML是一种结构化数据存储格式,易于解析和操作,适合用来传递图表的数据。 "charts_library"很可能是一个包含额外图形库的文件夹,比如一个专门处理图表的JQuery插件,例如...

    通过jQuery插件将JSP指定区域导出到WORD中(支持IE8)

    在本文中,我们将深入探讨如何使用jQuery插件将JSP中的指定区域导出到Word文档,并且这个解决方案特别针对IE8浏览器进行了优化。在开始之前,我们需要明白几个关键概念和技术。 1. **jQuery插件**:jQuery是一个...

    JS实现兼容各浏览器解析XML文档数据的方法

    在JS实现兼容各浏览器解析XML文档数据的方法中,首先介绍了一种使用JavaScript解析XML文档的方法。JavaScript是浏览器内置的脚本语言,它可以直接操作DOM,因此可以用来解析XML文档。具体做法是,首先使用...

    Jquery全解析,ajax框架

    ### Jquery全解析与Ajax框架构建 #### 一、jQuery简介 jQuery 是一款跨平台的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画以及与Ajax交互等操作。自2006年发布以来,jQuery已经成为最流行的...

    js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)

    本文将详细探讨在IE和Firefox浏览器中解析XML文档和XML字符串的方法及其实现原理。 首先,我们需要创建XML文档对象。在IE浏览器中,我们使用ActiveXObject来创建XMLDOM对象: ```javascript if (window....

    JS操作XML实例总结(加载与解析XML文件、字符串)

    由于JavaScript操作XML涉及到浏览器的DOM实现,不同的浏览器可能存在差异,比如旧版IE浏览器与现代浏览器在创建XMLDOM对象和解析XML时就存在较大差异,开发者在实际操作时需要对代码进行兼容性处理,确保在不同环境...

Global site tag (gtag.js) - Google Analytics