2010-01-25 5 views
0

J'ai examiné certains des articles relatifs à ce sujet mais je n'arrive pas à résoudre mon problème. Je suppose que cela a quelque chose à voir avec le fait que c'est lundi.Flex: Remplacement d'un nœud dans un objet XML

Eh bien, c'est parti. J'ai un objet XML contenant:

<root> 
    <page> 
     <text> 
     <style properties=""/> 
     <label> Text one</label> 
     </text> 
     <text> 
     <style properties=""/> 
     <label> Text two</label> 
     </text> 
    </page> 
    <page> 
     <text> 
     <style properties=""/> 
     <label> Text three</label> 
     </text> 
     <text> 
     <style properties=""/> 
     <label> Text four</label> 
     </text> 
    </page> 
</root> 

Et je veux remplacer seulement le noeud d'étiquette avec un nouveau. Je mets les nouveaux dans un XMLList mais maintenant je suis bloqué sur comment im supose pour remplacer les noeuds réels. Voici comment le XMLList ressemble:

<page> 
    <text> 
     <style properties=""/> 
     <label> Replace the first one</label> 
    </text> 
    <text> 
     <style properties=""/> 
     <label> Replace the second one</label> 
    </text> 
</page> 
<page> 
    <text> 
     <style properties=""/> 
     <label> Replace the third one</label> 
    </text> 
    <text> 
     <style properties=""/> 
     <label> Replace the fourth one</label> 
    </text> 
</page> 

Répondre

2

Un exemple simple:

// xml = your XML object  
xml.page[0].text[0].label = 'new text'; 
xml.page[0].text[1].label = 'new text 2'; 
trace (xml.toXMLString()); 

retours:

<root> 
    <page> 
    <text> 
     <style properties=""/> 
     <label>new text</label> 
    </text> 
    <text> 
     <style properties=""/> 
     <label>new text 2</label> 
    </text> 
    </page> 
    <page> 
    <text> 
     <style properties=""/> 
     <label>Text three</label> 
    </text> 
    <text> 
     <style properties=""/> 
     <label>Text four</label> 
    </text> 
    </page> 
</root> 
+0

T écheveaux! c'était vraiment simple après tout. – eldamar

+0

Juste une note, car c'est votre deuxième question et vous n'avez pas accepté de réponse ou voté. S'il vous plaît assurez-vous comment fonctionne StackOverflow en lisant http://stackoverflow.com/faq, en particulier le "Comment puis-je poser des questions ici?" section. Bravo –

+0

Désolé à ce sujet, ne savait pas à propos de la chose d'accepter la réponse. J'ai essayé de voter sur les réponses mais je n'avais pas assez de points pour le faire? Je vais devoir regarder la FAQ, merci pour le lien. – eldamar

0

Vous pouvez utiliser e4x pour obtenir le XMMList puis la fonction parent dans un boucle ou faire ce que vous voulez avec la liste:

var r:XML=<root> 
    <page> 
    <text> 
     <style properties=""/> 
     <label>new text</label> 
    </text> 
    <text> 
     <style properties=""/> 
     <label>new text 2</label> 
    </text> 
    </page> 
    <page> 
    <text> 
     <style properties=""/> 
     <label>Text three</label> 
    </text> 
    <text> 
     <style properties=""/> 
     <label>Text four</label> 
    </text> 
    </page> 
</root>; 

var xl:XMLList=r.page.text.label; 
// use the first element of the list 
xl[0].parent().label="i do what i want"; 


var i:int=0; 
// or loop over each elment if the list 
for each (var xml:XML in xl){ 
    xml.parent().label=i + " : " + xml.toString(); 
    i++; 
}