web-dev-qa-db-fra.com

Comment analyser les attributs XML avec jQuery seul?

J'analyse déjà xml avec succès, mais je suis bloqué pour obtenir un attribut childrens.

Exemple XML:

<entries>
    <entry>
        <media:thumbnail url="blah" />
    </entry>
</entries>

Javascript/jQuery:

$.get('data.xml', function(d){
    $(d).find('entry').each(function(){
        var $entry = $(this);
        var pic = $entry.find('media:thumbnail').attr('url');
    })
});

Ce javascript ne fonctionne pas pour moi pour obtenir un attribut. Quel est le problème?

17
Ryan

Aah, les espaces de noms sont un genre d'animal différent, ce n'était pas dans votre message d'origine. Vous devez échapper le : dans votre sélecteur.

var pic = $entry.find('media\\:thumbnail').attr('url');

http://jsfiddle.net/JSrJe/1/

Voir aussi Analyse XML jQuery avec des espaces de noms

23
DarthJDG

essayez ceci

$.ajax({
    type: "GET",
    url: 'data.xml,
    dataType: "xml",
    success: function(xml) {
        $(xml).find('entry').each(function(){
            var $entry = $(this);
            var pic = $entry.find('picture').attr('url');
            alert(pic);
        })
    },
    error: function(xhr, status, error) {
        if (xhr.status != 404) {alert(error);} else {alert("404 xml not found");}
    }
})
1
mcgrailm
  $.get('data.xml', function(d) {
    $(d).find('entry').each(function() {
        var $entry = $(this);
        var pic = $e`enter code here`ntry.find('media\\:thumbnail, thumbnail').attr('url');
    })
});
0