2015-02-13 2 views
1

Я получаю ответ xml от запроса ajax jquery, и я хочу извлечь имя и цену для каждого элемента. Я придерживаюсь наилучшего способа справиться с этим. Из показаний, кажется, что делает XML как JavaScript Object является лучшим выбором, но у меня возникают проблемы с поиском синтаксиса для достижения этой цели и перебирать ...Итерирование xml с jquery

$.ajax({ 
    type: "POST", 
    url: "myPgm.php",   
    success: function(xml) {  
     var xmlDoc = $.parseXML(xml); 
     // now I want to iterate through the xml payload 
     // .... 
     } 
    }) 

XML выглядеть следующим образом:

<items> 
    <item> 
     <name>item1</name> 
     <price>888</price> 
     </item> 
    <item> 
     <name>item2</name> 
     <price>999</price> 
    </item> 
<items> 
+0

Смотрите этот [ответ] (http://stackoverflow.com/a/15755526) – Last1Here

ответ

1

Это действительно очень просто с parseXML. Вот супер простой пример:

$(function() { 
 
    var xml = "<items><item><name>item1</name><price>888</price></item><item><name>item2</name><price>999</price></item></items>", 
 
     // parse the XML 
 
     xmlDoc = $.parseXML(xml), 
 
     // convert it to a jQuery Object 
 
     $xml = $(xmlDoc), 
 
     // find out how many items there are to loop over 
 
     itemCount = $xml.find("item").length, 
 
     // create variables for name and price 
 
     $name = $xml.find("name"), 
 
     $price = $xml.find("price") 
 
    ; 
 
    // loop over the items, outputting the name and price for each one 
 
    for (i=0; i < itemCount; i++) { 
 
     var html = '<li>Name: '+$($name[i]).text()+'<br/>Price: $'+$($price[i]).text()+'</li>'; 
 
     // append the items to a ul element 
 
     $('#your-container').append(html); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="your-container"></div>

Смежные вопросы