2011-08-14 25 views
1

我是一個新手,並試圖遍歷ajax加載的XML文件。我試圖從中填充所有的名字和城市,如果名字很常見,那麼我只會追加這個城市的普通名稱。遍歷xml使用重複數據使用jquery

我的XML文件

 <Info> 
     <detail> 
     <country>US</country> 
     <name>Edward</state> 
     <city>San bruno</city> 
     </detail> 

     <detail> 
     <country>US</country> 
     <name>Edward</state> 
     <city>Charleston </city> 
     </detail> 
     </info> 

我一個試圖證明它在這樣

 Edward 
     San Bruno 
     Charleston 

我的jQuery代碼看起來像這樣

 $.ajax({ 
     type: "GET", 
    url: "sheet.xml", 
    dataType: "xml", 
    success: function(xml) { 
     $(xml).find('detail').each(function(){ 
      var Pname = $(this).find('name').text(); 
      $('<div class="items" id="link">    </div>').html('<Strong>'+name+'</Strong>').appendTo('#content'); 
      if(Pname = $(xml).find('name').each(function(){ 
      var city = $(this).find('city').text(); 
      var full = name + ","+city; 
      $('<div class="items" id="link"></div>').html('<a href="'+city+'">'+city+'</a>').appendTo('#content'); 
      }); 

的格式,我只是不能再循環一次,以便我可以找到同名但不同城市的人,因此根據他們將他們放在一起不同的位置。 任何幫助,將不勝感激。在此先感謝..

回答

0

您應該可以修改這個在您的成功函數工作:

var xmlString = "<Info><detail><country>US</country><name>Edward</name><city>San bruno</city> </detail><detail><country>US</country><name>Edward</name><city>Charleston </city> </detail><detail><country>US</country><name>John</name><city>Charleston </city> </detail><detail><country>US</country><name>John</name><city>Dallas</city></detail></Info>", 
xmlDoc = $.parseXML(xmlString), 
$xml = $(xmlDoc), 
$name = $xml.find("name"); 

var prevName = ""; 

$name.each(function() { 
    var currNode = $(this); 
    var currName = currNode.text(); 

    if (currName != prevName) { 
     document.write(currName + "<br />"); 
     document.write(currNode.next().text() + "<br />"); 
     prevName = currName; 
    } else { 
     document.write(currNode.next().text() + "<br />"); 
    } 
}); 

的jsfiddle:http://jsfiddle.net/jensbits/Z6Bst/

+0

這假定對於給定的名稱詳細節點將是相鄰的。這可以假設爲XML? – steveax

+0

@steveax您需要詢問OP。他們在問題中發佈的示例應包含任何邊緣案例。在這種情況下,只能通過問題中發佈的內容進行分析。 –

+0

是的,對不起,我忘了包含'@用戶名',但我的意見是針對OP。 @RagsonWeb可以確定給定名稱的細節節點會相鄰嗎? – steveax