Я работаю над получением информации о художнике с серверов last.fm, и мне нужно уметь читать изображение художника, которого они имеют на своих серверах. Вы можете просмотреть геЬигп пример XML здесь. Как вы можете видеть, для каждого художника есть много изображений (маленький, средний, большой, extralarge и мега). Мне нужно быть готовым к любым из них и получить соответствующее значение.
Я новичок в чтении XML/DOM через Javascript, поэтому я уверен, что он довольно прост, но дополнительный атрибут "размер" в XML файле бросает меня на бит цикла. Благодарю!
Это, например, первое изображение.
$.ajax({
url: "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Cher&api_key=ac74a1e6fae52bc5f55a8a6f30b84db9",
type: "GET",
dataType: "html",
success: function(data) {
var xml = $.parseXML(data)
$(xml).each(function()
{
alert($(this).find("lfm>artist>image[size]:first").text());
});
},
error: function(jqXHR, textStatus, errorThrown ){
// debug here
alert("failure");
}
});
}
Что-то в этом роде должно возвращать все размеры изображения:
$.ajax({
type: "GET",
url: "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Cher&api_key=ac74a1e6fae52bc5f55a8a6f30b84db9",
dataType: "xml",
success: function (xml) {
// Parse the xml file and get data
var xmlDoc = $.parseXML(xml),
$xml = $(xmlDoc);
$xml.find('image').each(function () {
console.log($(this).text())
});
}
});
используйте $.parseXML для создания своего рода x-документа.. тогда вы можете найти материал из него с помощью селекторов jquery.
getXMLNode(retObj.responseXML, "thatField");
function getXMLNode(xml, nameOfField) {
return $($.parseXML(xml)).find(':first').find(nameOfField).text();
}
$.each($($.parseXML(xml)), function(ind,val) { console.log($(val).html()); console.log($(val).find('image').attr('size')); });