2013-06-12 86 views
0

我有數據進入XML文件,最初我使用jQuery Ajax函數來讀取和處理XML文件中的數據......整個功能完美工作,直到我已經嘗試過IE 9瀏覽器並且擁有所以很多不同的解決方案,但只是不通過XML文件讀取數據。我使用數據類型($.browser.msie) ?「文本」和XML其餘的瀏覽器,其次我爲IE調用parseXml(),但只是沒有發生......我我真的很掙扎,並想改變其他可能適合所有人的方法!如何將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; 
} 

我想知道如果我能讀AJAX功能

    1. XML數據,如果它成功, 對象轉換XMLDOCUMENT成JSON
    2. 然後處理數據,這樣我可以閱讀 IE和其他瀏覽器...

    我不想使用JSO N,任何人都可以請指導我,如果我能做到這一點!

    千恩萬謝

  • +0

    如果你不能讀取IE中的數據,那麼你將無法找出你想要變成JSON的數據。 – Quentin

    +0

    您是否嘗試使用$ .. parseXML()而不是編寫自己的.parseXML()? –

    +0

    好吧,我在上面的代碼中實現錯誤? – toxic

    回答

    1

    終於我已經找到了解決辦法,關鍵是使用不同的代碼,XML爲IE瀏覽器是小於10版本。

    所以每次Ajax調用一個方法時,根據瀏覽器調用parseXml或輸入參數XML Dom或文本....如果當前瀏覽器是IE瀏覽器,則它上傳XML文檔,根據Microsoft標準處理它並返回XML和Ajax中的其他進程按預期進行!

    注:browser.msie不jQuery的1.9支持,但你可以以使其兼容或使用的userAgent,發現這是當前的瀏覽器添加jQuery的遷移,1.2.1.min.js

    $.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插件來做到這一點...