ActionScript 3 – Programmation séquentielle et orientée objet
312
Rechercher plusieurs nœuds ou attributs à des niveaux différents
Vous pourrez récupérer la valeur de plusieurs nœuds ou attributs de nœuds à des niveaux
différents, en ne précisant aucune entrée :
fichierXML.Film.Realisateur;
fichierXML.Region.Departement.@prefecture;
Ainsi, en partant des fichiers cinema.xml et france3.xml, vous pourriez trouver toutes les
préfectures de France ou tous les noms des réalisateurs des films proposés dans le document
(testez, à ce propos, le fichier xml6.fla).
Les deux lignes d’instructions ci-dessous font d’ailleurs appel à la classe XMLList() pour
stocker le résultat des requêtes.
var resultat:XMLList=new XMLList(fichierXML.Film.Realisateur);
zoneAffichage.text = resultat[2];
var resultat:XMLList=new XMLList(fichierXML.Region.Departement.@prefecture);
trace(resultat[12]);
Recherche de parent
Lorsque vous effectuez une recherche, vous pouvez l’affiner par la suite en indiquant le
nom d’un nœud enfant ou d’un attribut. Vous scrutez donc les informations descendantes
ou en aval. Dans notre cas, nous devons connaître le nœud parent pour pouvoir lire
d’autres informations qu’il contient.
Fichiers de référence : Chapitre13/xml6.fla et Chapitre13/france3.xml
Dans le fichier XML de référence que nous allons utiliser pour exemple, vous pouvez
constater que l’arborescence est plus complexe que celles avec lesquelles nous avons
travaillé jusqu’à présent.
Elle présente par ailleurs des balises Departement vides alors que nous aurions pu utiliser
des balises autofermantes. Précisons simplement que ce type de balise ne peut faire l’objet
d’une recherche.
Nous avons choisi un tel fichier, avec autant de nœuds enfants et d’attributs, pour démontrer
que la recherche d’un attribut s’avère indispensable pour pouvoir, dans ce cas, retrouver
une information.
Remarque
Utilisez l’intégralité du script précédent pour replacer les deux lignes d’instructions dans leur contexte.
Attention
Vous ne pouvez pas rechercher un attribut dans une balise autofermante ou une balise vide.
312
Rechercher plusieurs nœuds ou attributs à des niveaux différents
Vous pourrez récupérer la valeur de plusieurs nœuds ou attributs de nœuds à des niveaux
différents, en ne précisant aucune entrée :
fichierXML.Film.Realisateur;
fichierXML.Region.Departement.@prefecture;
Ainsi, en partant des fichiers cinema.xml et france3.xml, vous pourriez trouver toutes les
préfectures de France ou tous les noms des réalisateurs des films proposés dans le document
(testez, à ce propos, le fichier xml6.fla).
Les deux lignes d’instructions ci-dessous font d’ailleurs appel à la classe XMLList() pour
stocker le résultat des requêtes.
var resultat:XMLList=new XMLList(fichierXML.Film.Realisateur);
zoneAffichage.text = resultat[2];
var resultat:XMLList=new XMLList(fichierXML.Region.Departement.@prefecture);
trace(resultat[12]);
Recherche de parent
Lorsque vous effectuez une recherche, vous pouvez l’affiner par la suite en indiquant le
nom d’un nœud enfant ou d’un attribut. Vous scrutez donc les informations descendantes
ou en aval. Dans notre cas, nous devons connaître le nœud parent pour pouvoir lire
d’autres informations qu’il contient.
Fichiers de référence : Chapitre13/xml6.fla et Chapitre13/france3.xml
Dans le fichier XML de référence que nous allons utiliser pour exemple, vous pouvez
constater que l’arborescence est plus complexe que celles avec lesquelles nous avons
travaillé jusqu’à présent.
Elle présente par ailleurs des balises Departement vides alors que nous aurions pu utiliser
des balises autofermantes. Précisons simplement que ce type de balise ne peut faire l’objet
d’une recherche.
Nous avons choisi un tel fichier, avec autant de nœuds enfants et d’attributs, pour démontrer
que la recherche d’un attribut s’avère indispensable pour pouvoir, dans ce cas, retrouver
une information.
Remarque
Utilisez l’intégralité du script précédent pour replacer les deux lignes d’instructions dans leur contexte.
Attention
Vous ne pouvez pas rechercher un attribut dans une balise autofermante ou une balise vide.
