如何将xml转换为JSON

时间:2013-06-12 12:34:49

标签: javascript jquery xml json internet-explorer

我有数据来自XML文件,最初我使用jQuery Ajax函数来读取和处理XML文件中的数据...整个功能完美无缺,直到我尝试使用IE 9浏览器并拥有许多不同的解决方案但是只是没有通过XML文件读取数据。我使用数据类型($.browser.msie) ?“text”和xml用于浏览器的其余部分,然后我为IE调用parseXml()但是没有发生....我真的努力并思考改变适合所有人的其他可能的方法!!!

 function testXml() {

    $.ajax({
        type: 'GET',
        url: 'XML_estatesIT_op4.xml',
        dataType: ($.browser.msie) ? "text" : "xml",
        success: function (xml) {

            theXml = parseXml(xml);

            $(theXml).find("property").each(function () {

                var b1 = $(this).find('proptype').text();

                alert(b1);                        
            });
        },
        error: function () {
            alert("An error occurred while processing XML file.");
        }
     });
 }

 function parseXml(xml) {

    if (jQuery.browser.msie) {
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(xml);
        xml = xmlDoc;
    }

    return xml;
}

我想知道我是否可以阅读

  1. ajax函数中的xml数据
  2. 如果成功,转换xmlDocument 将对象转换为JSON
  3. 然后处理数据,以便我可以读入 IE和其他浏览器......
  4. 我没有使用JSON,任何人都可以指导我,如果我能做到这一点!!

    非常感谢

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案,诀窍是为版本低于10的IE浏览器使用单独的代码XML。

因此,每次调用Ajax时,都会使用输入参数XML Dom或文本调用parseXml,具体取决于浏览器....如果当前浏览器是IE,则上传XML文档,根据Microsoft标准处理它并返回XML Ajax中的其余进程按预期进行!!

注意:jQuery 1.9不支持browser.msie,但您可以添加jquery-migrate-1.2.1.min.js以使其兼容或使用userAgent并查找哪个是当前浏览器

  $.ajax({
      type: 'GET',
      url: 'XML_file.xml',
      dataType: ($.browser.msie) ? "text" : "xml",
      success: function (xml) {

         var processedXML = parseXml(xml);

         $(processedXML).find('my record').each(function () {  //code  } 
  });


  function parseXml(xml) {

  if ($.browser.msie)  {

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

        xmlhttp.open("GET", "XML_file.xml", false);
        xmlhttp.send();
        xmlDoc = xmlhttp.responseXML;

        xml = xmlDoc;
  }
  return xml;
}

我的原始问题在这里得到解答,我问我是否可以将xml转换为json,是的,你可以;一旦成功方法被调用... xml文档出现了,你可以使用xml-t0-json插件来做...