Как читать XML-файл в Javascript (или JQuery)

0

Я работаю над получением информации о художнике с серверов last.fm, и мне нужно уметь читать изображение художника, которого они имеют на своих серверах. Вы можете просмотреть геЬигп пример XML здесь. Как вы можете видеть, для каждого художника есть много изображений (маленький, средний, большой, extralarge и мега). Мне нужно быть готовым к любым из них и получить соответствующее значение.

Я новичок в чтении XML/DOM через Javascript, поэтому я уверен, что он довольно прост, но дополнительный атрибут "размер" в XML файле бросает меня на бит цикла. Благодарю!

  • 0
    был ли определенный размер, который вам нужен? или только все они?

3 ответа

1

Это, например, первое изображение.

$.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");
    }
    });
    }
0

Что-то в этом роде должно возвращать все размеры изображения:

$.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())
        });
    }
});
0

используйте $.parseXML для создания своего рода x-документа.. тогда вы можете найти материал из него с помощью селекторов jquery.

 getXMLNode(retObj.responseXML, "thatField");

 function getXMLNode(xml, nameOfField) {
        return $($.parseXML(xml)).find(':first').find(nameOfField).text();
    }
  • 0
    Можете ли вы сделать функцию более конкретной для моего вопроса? Как я уже сказал, к каждому художнику прикреплено 4 изображения, и они имеют атрибут «размер». Мне нужно иметь доступ к ним по атрибуту "размер". Посмотрите на ссылку, которую я предоставил в моем оригинальном сообщении, если вы еще этого не сделали.
  • 0
    Эхх .. попробуйте это и проверьте журнал .. конечно, это вы на правильном пути ?? после вызова функции parseXML вы можете проходить xml так же, как в DOM. $.each($($.parseXML(xml)), function(ind,val) { console.log($(val).html()); console.log($(val).find('image').attr('size')); });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню