2013-06-12 4 views
0

У меня есть данные, поступающие в XML-файл, и изначально я использовал функцию jQuery Ajax для чтения и обработки данных в XML-файле ... вся функциональность работает отлично, пока я не пробовал браузер IE 9 и не имел так много разных решений, но просто не читаются данные через XML-файл. Я использую тип данных ($.browser.msie) ? «текст» и xml для остальной части браузера, а затем я вызываю parseXml() для IE, но просто не происходит .... I я действительно борюсь и думаю изменить другой возможный метод, который подходит всем !!!Как преобразовать xml в JSON

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. XML-данных в функции АЯКС
  2. если это успех, конвертировать XMLDOCUMENT объект в JSON
  3. затем процесс на данных, так что я могу читайте в IE и других браузерах ...

Я не пользуюсь JSO N, может ли кто-нибудь направить меня, если я смогу это сделать!

большое спасибо

+0

Если вы не можете прочитать данные в IE, то вы не сможете чтобы узнать, какие данные вы хотите превратить в JSON. – Quentin

+0

Вы пробовали $ .. parseXML() вместо написания собственного .parseXML()? –

+0

ok, так что я внедряю неправильно в код выше ??? – toxic

ответ

1

, наконец, я нашел решение, хитрость заключается в использовании отдельного кода XML для IE браузеров, которые версия менее 10.

так каждый раз, когда Ajax это вызов метода ParseXML вызывается с входным параметром XML Dom или текст, в зависимости от браузера .... и если текущий браузер IE, это загрузить XML-документ, процесс его в соответствии со стандартами Microsoft и возврат XML и остальные процессы в Ajax продолжаются, как и ожидалось !!

Примечание: browser.msie не поддерживается в JQuery 1.9, но вы можете добавить 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 document спустился, и вы можете использовать плагин xml-t0-json для этого ...

Смежные вопросы