如何在AS3中删除一个XML节点?
如果我们在AS3中声明了一个XML片段,并且想在运行时删除其中的一个或多个节点,该怎么做呢?答案是,使用Delete关键字。
比如有如下的XML片段:
<root> <child label="one" /> <child label="two" /> <child label="three" /> <nodeToDelete label="four" /> <child label="five" /> <nodeToDelete label="six"> <child label="seven" /> <child label="eight" /> </nodeToDelete> <child label="nine" /> </root>
如果我要删除其中的nodeToDelete这个节点,那么我就可以这样写:delete someXML.nodeToDelete。同样注意,使用Delete不止可以删除一个节点,也可以删除一组节点(这些节点应该包含在一个XMLList对象里面),比如我要删除所有的label是“two”的节点,可以这样写:delete someXML.child.(@label=='two')[0]。
完整的示例代码:
<?xml version="1.0" encoding="utf-8"?> <!-- <a href="http://blog.flexexamples.com/2009/07/23/deleting-nodes-from-an-xml-object-in-flex/" title="http://blog.flexexamples.com/2009/07/23/deleting-nodes-from-an-xml-object-in-flex/">http://blog.flexexamples.com/2009/07/23/deleting-nodes-from-an-xml-objec...</a> --> <mx:Application name="XML_delete_test" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white"> <mx:Script> <![CDATA[ delete someXML.nodeToDelete; txtArea.text = someXML.toXMLString(); } delete someXML.child.(@label == 'two')[0]; txtArea.text = someXML.toXMLString(); } ]]> </mx:Script> <root> <child label="one" /> <child label="two" /> <child label="three" /> <nodeToDelete label="four" /> <child label="five" /> <nodeToDelete label="six"> <child label="seven" /> <child label="eight" /> </nodeToDelete> <child label="nine" /> </root> </mx:XML> <mx:ApplicationControlBar dock="true"> <mx:Button id="btn1" label="delete <nodeToDelete> nodes" click="btn1_clickHandler(event);" /> <mx:Button id="btn2" label="delete <child label='two'> node" click="btn2_clickHandler(event);" /> </mx:ApplicationControlBar> <mx:TextArea id="txtArea" text="{someXML.toXMLString()}" width="300" height="200" /> </mx:Application>

.gif)
.gif)




.gif)
发表新评论