Question

Je reçois un objet de retour d'ASP.NET, et lors du suivi du XML comme suit:

var xml:XML = new XML(event.message.body);
trace(xml);

Je reçois la sortie suivante:

<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost:49329/">
    <string>One</string>
    <string>Two</string>
    <string>Three</string>
</ArrayOfString>

Je suis en train de parcourir la structure pour obtenir les chaînes extraites, mais en vain. Je suis en utilisant le code suivant:

for each(var item:Object in xml.children())
{
    MonsterDebugger.trace(this, item.toString());
}

... et je sais que ce n'est pas tout à fait efficace. Il fonctionne maintenant, mais il y a un moyen d'obtenir les chaînes avec une syntaxe en utilisant le signe @.

Quelqu'un peut-il s'il vous plaît conseiller?

Était-ce utile?

La solution

<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost:49329/">
    <string>One</string>
    <string>Two</string>
    <string>Three</string>
</ArrayOfString>

Vous devez prendre soin de l'espace de noms aussi:

var ns:Namespace = new Namespace("http://localhost:49329/");
var strings:XMLList = xml.ns::string;
for each(var str:XML in strings)
  trace(str.text());

Autres conseils

Vous avez à peu près obtenu. Doit être capable d'écrire la même boucle comme ceci:

for each( var el:XML in xml.string ) {
  trace( el.toString() );
}

Jetez un oeil à ces e4x docs , ceux-ci sont pour Flex, mais tout cela s'applique parce qu'il est juste AS3. Comme vous pouvez le voir l'état de la documentation sur beaucoup de ce genre de choses est un peu squameuse:)

Vous pouvez lire ma réponse à AS3 - Deepest éléments XML En utilisant SimpleXML vous pouvez analyser votre XML d'une manière facile à utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top