vendredi 18 août 2006
Flash 8 : XML.idMap
Actionscript/Flash/Flex - Lien permanent
Apparue avec Flash 8, XML.idMap permet de créer un objet contenant les noeuds XML possédants un attribut "id". Chaque noeud XML possédant un tel attribut devient une proprieté de l'objet idMap, en prenant comme nom la valeur de l'attribut.
Voici un exemple en pratique :
<?xml version="1.0" encoding="UTF-8"?> <produits> <produit id="56">Carrotes</produit> <produit id="73">Chou-fleur</produit> <produit id="18">Petits pois</produit> </produits>
Et le code actionscript :
var doc = new XML();
doc.ignoreWhite = true;
doc.onLoad = traitement;
doc.load("test.xml");
function traitement(){
for(var i in this.idMap){
trace(i+" -> "+this.idMap[i]);
}
}
La fenêtre de sortie affichera la chose suivante :
18 -> <produit id="18">Petits pois</produit> 73 -> <produit id="73">Chou-fleur</produit> 56 -> <produit id="56">Carrotes</produit>
L'objet doc.idMap contient bien dans cet exemple 3 propriétés que l'on peut appeler directement comme ceci :
doc.idMap["18"]
Attention tout de même, il y a un petit bug si vous tentez un typage fort votre objet XML. Ainsi le même code avec la déclaration suivante :
var doc:XML = new XML();
générera une erreur à la compilation :
Il n'existe aucune propriété nommée 'idMap'
Commentaires