2012-04-19 58 views
16

我試圖解析以下XML類型的(數據來自getMembers.php):AJAX/jQuery的XML解析

<?xml version="1.0" encoding="ISO-8859-1"?> 
<members> 
    <id>3422345</id> 
    <name>Bill Gates</name> 
    <id>232311</id> 
    <name>Bob Barker</name> 
</members> 

,我用下面這段代碼解析:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "GET", 
      url: "getMembers.php", 
      cache: false, 
      dataType: "xml", 
      success: function(xml) { 
       $(xml).find('members').each(function(){ 
        var name = $(this).find("name").text() 
        alert(name); 
       }); 
      } 
     }); 
    }); 
</script> 

沒有錯誤,但我同時獲得這兩個名字..

像:

比爾GatesBob巴克< --first循環>

而不是

比爾·蓋茨< --first循環>

鮑勃巴克< --second循環>

任何幫助將是偉大的!

大衛

+0

那是一個錯字:? – fmgp 2012-04-19 07:59:39

+0

哎呀,對不起。它已被糾正。 – StealthRT 2012-04-19 08:09:05

回答

30

我想你遍歷成員,沒有名稱:

success: function(xml) { 
       $(xml).find('members').each(function(){ 
        $(this).find("name").each(function(){ 
         var name = $(this).text(); 
         alert(name); 
        }); 
       }); 
      } 

或者,也許你的XML應該是這樣的:

<members> 
    <id>3422345</id> 
    <name>Bill Gates</name> 
</members> 
<members> 
    <id>232311</id> 
    <name>Bob Barker</name> 
</members> 
+0

就是這樣。謝謝fmgp! :O) – StealthRT 2012-04-19 08:21:23

1

這樣顯示的名字:

<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "getMembers.php", 
     cache: false, 
     dataType: "xml", 
     success: function(xml) { 
      $(xml).find('name').each(function(){ 
         var name = $(this).text(); 
         alert(name); 
      }); 
     } 
    }); 
}); 

0

想知道您是否成功解析了這個XML數據。

有效的XML格式如下:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<members> 
    <member> 
    <id>3422345</id> 
    <name>Bill Gates</name> 
    </member> 
    <member> 
    <id>232311</id> 
    <name>Bob Barker</name> 
</member> 
</members>