Question

AS3

J'essaie de charger dynamiquement des images basées sur un fichier XML.Le problème avec lequel je suis coincé est une fonction qui est censée renvoyer le nœud trouvé à partir de l'identifiant fourni.Comme dans le code suivant

function getStudyById(id:String):XMLNode{
    var xl:XMLList = xml.bacase.(@name==id); // xml is a global variable
    return xl.children()[0]; // xl[0] does not work either
    // return (xl.length()>0) ? xl[0] : null;
}

Le XML ressemble à ceci :

<root>
    <bacase name="a" />
    <bacase name="b" />
</root>

En anticipant vos questions, tout se fait dans l'événement COMPLETE du chargeur XML, une fois le XML chargé.

Maintenant, le problème est que XMLList semble être vide, alors que XML est correctement renseigné et que l'identifiant correspond définitivement à l'un des nœuds.Lorsque je duplique le nœud interrogé, la liste indique correctement qu'elle contient deux nœuds.Je suppose donc que s’il n’y a qu’une seule correspondance, la XMLList n’est pas créée et le résultat contient des données de type XMLNode.

Y a-t-il quelqu'un pour confirmer cela ?Si tel est le cas, existe-t-il un moyen de garantir que la requête renvoie toujours le type XMLList ?

Merci à Artur

Était-ce utile?

La solution

XMLNode fonctionne uniquement avec l'ancien flash.xml.XMLDocument.Un seul nœud serait de type XML si tu utilises XML ou XMLList.

Ce extrait fonctionne bien pour moi :

var xml:XML = <root>
        <bacase name="a" />
        <bacase name="b" />
    </root>;

var p:XMLList = xml.bacase.(@name == "a");

if (p.length() > 0) return XML(p[0]);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top