使用jquery使用重复数据遍历xml

时间:2011-08-14 23:47:43

标签: jquery xml

我是新手并试图遍历ajax加载的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');
            });

我只是不能再循环它,以便我可以找到同名但不同城市的人,因此根据不同的位置将它们放在一起。 任何帮助,将不胜感激。提前谢谢..

1 个答案:

答案 0 :(得分: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/