【问题标题】:How to read XML file in Javascript (or jQuery)如何在 Javascript(或 jQuery)中读取 XML 文件
【发布时间】:2014-04-12 01:40:20
【问题描述】:

我正在努力从 last.fm 服务器获取艺术家的信息,我需要能够读取他们服务器上的艺术家的图片。您可以查看示例 XML 返回语句 here。如您所见,每个艺术家都有许多图像(小、中、大、超大和超大)。我需要能够准备好其中的任何一个并获得适当的价值。

我是通过 Javascript 读取 XML/DOM 的新手,所以我确信它相当简单,但是 XML 文件中“大小”的额外属性让我陷入了一个循环。谢谢!

【问题讨论】:

  • 您需要特定的尺寸吗?还是全部?

标签: javascript jquery html xml


【解决方案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");
    }
    });
    }

【讨论】:

    【解决方案2】:

    使用 $.parseXML 创建一种 x-document.. 然后您可以使用 jquery 选择器从中查找内容。

     getXMLNode(retObj.responseXML, "thatField");
    
     function getXMLNode(xml, nameOfField) {
            return $($.parseXML(xml)).find(':first').find(nameOfField).text();
        }
    

    【讨论】:

    • 你能让这个功能更具体地解决我的问题吗?就像我说的,每个艺术家都附有 4 张图像,并且有一个“大小”属性。我需要能够通过“大小”属性访问它们。如果您还没有,请查看我在原始帖子中提供的链接。
    • Ehh.. 试试这个并检查日志.. 这肯定让你走在正确的轨道上吗??调用 parseXML 函数后,您可以像 DOM 一样遍历 xml。 $.each($($.parseXML(xml)), function(ind,val) { console.log($(val).html()); console.log($(val).find('image').attr('size')); });
    【解决方案3】:

    这种效果应该返回所有图像尺寸:

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

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      相关资源
      最近更新 更多