Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将xml转换为JSON_Javascript_Jquery_Xml_Json_Internet Explorer - Fatal编程技术网

Javascript 如何将xml转换为JSON

Javascript 如何将xml转换为JSON,javascript,jquery,xml,json,internet-explorer,Javascript,Jquery,Xml,Json,Internet Explorer,我有XML文件中的数据,最初我使用jQueryAjax函数读取和处理XML文件中的数据。。。在我尝试使用IE 9浏览器之前,整个功能都可以完美地工作,并且有很多不同的解决方案,但不是通过XML文件读取数据。我正在使用数据类型($.browser.msie)?“文本”和XML作为浏览器的其余部分,然后我调用IE的parseXml(),但这一切都没有发生。。。。我真的很努力,想改变其他适合所有人的可能方法 function testXml() { $.ajax({ typ

我有XML文件中的数据,最初我使用jQueryAjax函数读取和处理XML文件中的数据。。。在我尝试使用IE 9浏览器之前,整个功能都可以完美地工作,并且有很多不同的解决方案,但不是通过XML文件读取数据。我正在使用数据类型
($.browser.msie)?
“文本”和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;
}
我想知道我是否能阅读

  • ajax函数中的xml数据
  • 如果成功,请转换xmlDocument 对象转换为JSON
  • 然后对数据进行处理,以便我可以读入 IE和其他浏览器
  • 我没有使用JSON,如果我能做到这一点,谁能指导我


    非常感谢

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

    因此,每次调用Ajax时,都会使用输入参数XMLDOM或text调用parseXml方法,具体取决于浏览器。。。。如果当前的浏览器是IE,它会上传XML文档,按照微软的标准进行处理,并返回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插件来实现这一点

    如果您无法读取IE中的数据,那么您将无法找到要转换为JSON的数据。您是否尝试过$…parseXML()而不是编写自己的.parseXML()?好的,那么我在上述代码中实现的是错误的吗???是的,我尝试过,但没有工作!可能重复的