2010-01-25 80 views
0

我已经看过一些关于此主题的相关帖子,但我无法弄清楚如何解决我的问题。我想这与它的星期一事实有关。Flex:替换XML对象中的节点

那么,这里就是了。我有一个XML对象,其中包含:

<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> 

而我只想用新的替换标签节点。我把新的XMLList放在一个XMLList中,但现在我坚持要如何替换实际的节点。这是XMLList中的样子:

<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> 

回答

2

一个简单的例子:

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

回报:

<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汉克斯!毕竟它真的很简单。 – eldamar 2010-01-26 07:45:19

+0

请注意,因为这是您的第二个问题,您没有接受任何答案或对任何答案投了票。请通过阅读http://stackoverflow.com/faq确保StackOverflow是如何工作的,特别是“如何在这里提问?”部分。干杯 – 2010-01-26 08:45:11

+0

对不起,不知道接受答案的事情。我试图对答案投票,但我没有足够的分数来这样做?我得看看常见问题,谢谢你的链接。 – eldamar 2010-02-08 09:09:27

0

您可以使用E4X得到XMMList,然后在父函数循环或做你想要的清单:

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++; 
}