2009-07-31 10 views
0

J'ai besoin d'utiliser une chaîne pour accéder aux nœuds et attributs en XML en utilisant E4X. Il serait idéal d'avoir ce scénario (avec XML déjà chargé):Utiliser une chaîne comme une expression E4X dans AS3?

var myXML:XML = e.target.data; 

var myStr:String = "appContent.bodyText.(@name == 'My Text')"; 

myXML.myStr = "New Value for bodyText node where attribute('name') is equal to 'My Text'"; 

Je dois finalement définir de nouvelles valeurs à un document XML en utilisant des chaînes comme des expressions E4X.

+0

Quelqu'un a eu ce travail? – Shawn

+0

Je ne l'ai pas fonctionné, mais ... j'ai trouvé une solution de contournement. prenez la chaîne du chemin E4X que vous souhaitez cibler. en analysant le XML, tirez le chemin E4X et comparez-le à votre chemin cible. Si les deux sont égaux, faites ce que vous voulez avec ce nœud/attribut. C'est un hack, mais ça marche. Vous pouvez même analyser le XML et remplir un tableau avec la chaîne cible et le noeud cible, puis vous pouvez simplement y accéder via un élément du tableau. Ceci est extensible de plusieurs façons. Tant que tout est mis en place pour la collecte des ordures appropriée, tout ira bien. Je l'utilise juste dans un outil de développement. :-) –

Répondre

0

Comme il est indiqué ci-dessus:

J'ai découvert une solution

  • Prenez la chaîne du chemin E4X que vous souhaitez cibler

  • Tirez sur le chemin E4X et comparer à votre chemin cible

  • Si les deux sont égaux, faites ce que vous voulez avec ce nœud/attribut

Il est un hack, mais cela fonctionne. Vous pouvez même analyser le XML et remplir un tableau avec la chaîne cible et le noeud cible, puis vous pouvez simplement y accéder via un élément du tableau. Ceci est extensible de plusieurs façons. Tant que tout est mis en place pour la collecte des ordures appropriée, tout ira bien.

Questions connexes