كيفية تحليل استجابة خدمة ويب XML باستخدام Javascript أو jQuery

StackOverflow https://stackoverflow.com/questions/9373852

سؤال

أريد استخدام خدمة ويب XML التالية.www.musicbrainz.org/ws/2/artist/?query=artist:مايكل جاكسون

التنسيق الذي هو مثل أدناه:

<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 .هنا أحصل على سمة تحويلة للفنان ولكن لا تعمل.

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

});

يمكن لأي شخص أن يقترح علي المثال لتحليل ملف XML باستخدام Javascript أو jQuery.

هل كانت مفيدة؟

المحلول

$.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 هنا .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top