2012-06-16 100 views
0

當我嘗試顯示ajax所拍攝的xml數據時發生問題。 數據來得成功,但當我試圖解析它爲XML,它失敗。這裏是代碼:我試圖顯示序列化的XML數據,一切順利,一些錯誤的解析......在javascript中解析xml

<script type="text/javascript"> 
    $.ajax({ 
     url: 'Flights.xml', 
     type: 'GET', 
     dataType: 'xml', 
     timeout: 1000, 
     error: function() { 
      alert('Error loading XML document'); 
     }, 
     success: function (data) { 
      //data.xml check for IE 
      //   var xmlstr = data.xml ? data.xml : ; 
      //   alert(xmlstr); 
      var xmlstr = data.xml ? data.xml : (new XMLSerializer()).serializeToString(data); 
      var xmlDoc = StringtoXML(xmlstr); 
      var x = xmlDoc.getElementsByTagName("Flight"); 
      var y = document.write(x[i].getElementsByTagName("Type")[0].childNodes[0].nodeValue); 
      alert(y); 
     } 
    }); 
    function StringtoXML(text) { 
     if (window.ActiveXObject) { 
      var doc = new ActiveXObject('Microsoft.XMLDOM'); 
      doc.async = 'false'; 
      doc.loadXML(text); 
     } else { 
      var parser = new DOMParser(); 
      var doc = parser.parseFromString(text, 'text/xml'); 
     } 
     return doc; 
    } 

</script> 

這裏XML文件

<?xml version="1.0"?> 
<Flights> 
    <Flight ID="0"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="1"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="2"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="3"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="4"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="5"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="6"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="7"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="8"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="9"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="10"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="54"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="55"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="56"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="57"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="58"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="59"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="60"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="61"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="62"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="63"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="64"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="65"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="66"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="67"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="68"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="69"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="70"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="71"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="72"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="73"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="74"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="75"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="76"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="77"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="78"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="79"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="80"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="81"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="82"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="83"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="84"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="85"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="86"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="87"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="88"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="89"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="90"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="91"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="92"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="93"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="94"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="95"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="96"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="97"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="98"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="99"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="100"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="101"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="102"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="103"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="104"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="105"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="106"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="107"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="108"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="109"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
    <Flight ID="110"> 
    <Type>SpecialKazakhstan</Type> 
    <Discription>СпециальныйтарифэкономическогоклассасограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>47917KZT</minimanPrice> 
    </Flight> 
    <Flight ID="111"> 
    <Type>FlexibleKazakhstan</Type> 
    <Discription>Специальныйтарифэкономическогоклассасвозможностьюбесплатногоперебронированиядоотправления.Дополнительнаяинформация</Discription> 
    <minimanPrice>52397KZT</minimanPrice> 
    </Flight> 
    <Flight ID="112"> 
    <Type>Fullflexible</Type> 
    <Discription>НормальныйтарифэкономическогоклассабезограниченийДополнительнаяинформация</Discription> 
    <minimanPrice>56267KZT</minimanPrice> 
    </Flight> 
    <Flight ID="113"> 
    <Type>BusinessKazakhstan</Type> 
    <Discription>НормальныйтарифбизнесклассаснекоторымиограничениямиДополнительнаяинформация</Discription> 
    <minimanPrice>89557KZT</minimanPrice> 
    </Flight> 
    <Flight ID="114"> 
    <Type>Business</Type> 
    <Discription>Нормальныйтарифбизнесклассабезограничений.ПочувствуйтенастоящийкомфортДополнительнаяинформация</Discription> 
    <minimanPrice>98345KZT</minimanPrice> 
    </Flight> 
</Flights> 

回答

2

嘗試使用jQuery

success: function(xml) 
{ 
    $(xml).find("Flight").each(function() { 
     // code here 
    }); 
} 
解析它

想要這樣:

$.ajax({ 
     url: 'Flights.xml', 
     type: 'GET', 
     dataType: 'xml', 
     timeout: 1000, 
     error: function() { 
      alert('Error loading XML document'); 
     }, 
     success: function(xml) 
     { 
      $(xml).find("Flight").each(function() { 
      $(this).attr('id') // ID 
      $(this).find('discription').text() // Discription content 
      }); 
     } 
    }); 
+0

什麼可以放置廢物這裏的代碼廣告? – Nate

+0

我很強大的Jquery ... – Nate

+1

把它放到$ .ajax調用中。查看更新的評論 – odiszapc