2013-06-07 4 views
1

J'ai un document XML extrait d'un serveur via ajax au format suivant.Récupère des éléments spécifiques de XML

<persons> 
    <person> 
     <first>Jim</first> 
     <last>Smith</last> 
    </person> 
    <person> 
     <first>Jim</first> 
     <last>Smith</last> 
    </person> 
</persons> 

Comment puis-je extraire les valeurs first et last de chaque person?

J'ai essayé ce qui suit, mais il ne fonctionne pas:

var persons = xmldoc.getElementsByTagName('persons'); 
      for(var i = 0; i < persons.length; i++) { 
       var person = persons[i]; 
       var first = person.firstChild.data; 
       console.log(first); 
      } 
+0

C'est pas un arbre DOM. – gdoron

+0

Que dit la console d'erreur? –

+0

où avez-vous défini la valeur de xmldoc et où est votre appel AJAX? –

Répondre

0
var firstName = person.getElementsByTagName('first'); 
var lastName = person.getElementsByTagName('last'); 
0

Essayez

var persons = xmldoc.getElementsByTagName('person'); 

for(var i = 0; i < persons.length; i++) { 
    var person = persons[i]; 
    var first = person.firstChild.textContent; 
    console.log(first); 
} 

Démo: Fiddle

0

Si vous analysez des documents XML et que vous voulez le faire correctement, alors vous pouvez utiliser XPath, et chargez votre XML avec XMLHttpRequest.

Vous pouvez également parse si à partir d'une chaîne avec jQuery et utilisez jQuery selectors pour sélectionner ce dont vous avez besoin.

0

essayer cette

d'abord ajouter cette ligne dans votre fichier xml

<?xml version="1.0" encoding="UTF-8"?> 

puis essayez celui-ci en utilisant jquery

jQuery(document).ready(function() { 

jQuery.get("person.xml",{},function(xml) { 
    jQuery('person',xml).each(function(i) { 
     first = jQuery(this).find("first").text(); 
     last = jQuery(this).find("last").text(); 
     alert("First Name-> "+first+" Last name ->"+last); 
    }); 
}); 
}); 
Questions connexes