Tout au long de cet article, nous allons se référer à un seul fichier XML, qui servira pour tous les exemples. le voici:

[xml]
<?xml version="1.0" encoding="UTF-8"?>
<root>
<personne>
<adresse rue="rue de la liberation" numero="36" >
<nom>Franck</nom>
<prenom>Michael</prenom>
</adresse>
</personne>
<personne>
<adresse rue="boulevard hoch" numero="13" >
<nom>Arthur</nom>
<prenom>Rambo</prenom>
</adresse>
</personne>
<personne>
<adresse rue="avenue leclerc" numero="45" >
<nom>Nina</nom>
<prenom>Simone</prenom>
</adresse>
</personne>
</root>

et voici comment je déclare côté Flex mon fichier XML :

[xml]
<mx:XML id="fichierXML" source="monFichier.xml"/>

Entrons dans le vif du sujet à présent!

-Récupérer tous les noms du fichiers:

[actionscript]
trace(fichierXML.personne.adresse.nom);

affiche:

Franck
Arthur
Nina

[actionscript]
trace(fichierXML.personne.adresse.nom.text());

affiche:

FranckArthurNina

-Récupérer les informations du premier enregistrement:

[actionscript]
trace(Photos.personne[0].adresse.nom);
trace(Photos.personne[0].adresse.prenom);
trace(Photos.personne[0].adresse.@rue);
trace(Photos.personne[0].adresse.@numero);

affiche:

Franck Michael rue de la liberation 36

-Rechercher des informations, par exemple, récupérer seulement les personnes habitant l'avenue leclerc:

[actionscript]
trace(Photos.personne.adresse.(@rue=='avenue leclerc').nom);
trace(Photos.personne.adresse.(@rue=='avenue leclerc').prenom);

affiche:

Nina Simone

-Souvent la construction d'un XML n'est pas "symétrique", il se peut que certains attribut soit "facultatif". Ce soucis provoque l'erreur "attribut inexistant" si l'on utilise l'accès direct à un attribut (avec @), voici une solution:

[actionscript]
trace(Photos.personne.adresse.(attribute("etage")));

Ceci renvoi l'attribut etage de l'adresse uniquement si il existe, sinon la méthode XML.attribute() retourne un XMLList vide plutôt que l'erreur ;)

Voila pour commencer, si vous avez des requêtes spécifique, vous pouvez les faire en commentaires ;)