2011-08-14 6 views
1

私は初心者で、ajaxをロードしたxmlファイルをトラバースしようとしました。私はそれからすべての名前と都市を設定しようとしています。名前が共通であれば、私は単に共通名のために都市を追加します。jqueryを使用して重複データを使用してxmlをトラバースする

私の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

はい、申し訳ありません私は '@ username'を含めるのを忘れましたが、私のコメントはOPに向けられています。 @RagsonWebは、指定された名前の詳細ノードが隣接することを保証できますか? – steveax

関連する問題