【问题标题】:How to parse xml webservice response using Javascript or jQuery如何使用 Javascript 或 jQuery 解析 xml webservice 响应
【发布时间】:2012-03-11 13:04:13
【问题描述】:

我想使用以下 xml 网络服务。 www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson

下面是哪种格式:

<metadata><artist-list offset="0" count="3418"><artist ext:score="100" type="Person" id="f27ec8db-af05-4f36-916e-3d57f91ecf5e"><name>Michael Jackson</name><sort-name>Jackson, Michael</sort-name><gender>male</gender><country>US</country>

我只想解析这个 xml 并从中获取性别。 我使用以下代码来解析 xml 。 在这里,我得到了艺术家的 ext 属性,但没有工作。

    $.ajax({
        type: 'GET',
        url: 'http://www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson',
        dataType: 'xml',
        success: function(xml){
           // console.log(xml);
            $(xml).find('artist-list').each(function(){
            $(this).find('artist').each(function(){
                            var ext = $(this).attr('ext');
                            alert(ext);
                    });
            });
    }

});

任何人都可以建议我使用 Javascript 或 jQuery 解析 xml 的示例。

【问题讨论】:

  • 在下面查看我的答案。任何回应都会很棒!

标签: javascript jquery xml-parsing musicbrainz


【解决方案1】:
$.ajax({ 
    type: 'GET', 
    url: 'http://www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson',
    dataType: 'xml', 
    success: function(xml){ 
       $("artist", xml).each(function(){
           console.log($("gender", this).text());
       });
    }
});

更新:

刚刚检查了网络服务,我发现并非每个artist 都指定了gender 标记。在这种情况下,您可以使用以下内容:

    $("artist", xml).each(function(){
         var gender = $("gender", this);
         if(gender.length>0)
             console.log($(gender).text());
    });

JSFiddle Demo here.

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多