<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <!--[CDATA[ import mx.collections.XMLListCollection; [Bindable] //创建E4X的XML对象 private var doc:XML = <folder label="我的文档" data="doc"> <folder label="我的图片" data="pic"/> <folder label="我的音乐" data="music"> <Pfolder label="PlaceNearBy.mp3" /> <Pfolder label="solo.mp3" /> <Pfolder label="流行乐" isBranch="true" data="pop"/> </folder> <folder label="我的应用程序" data="app"/> <folder label="我的视频" data="video"/> </folder>; [Bindable] private var docData:XMLListCollection = new XMLListCollection(doc.folder); private function addDoc():void { var newNode:XML = <Pfolder/>; newNode.@label = docName.text; var pFolder:XMLList =doc.folder.(@label == "我的音乐"); if( pFolder.length() > 0 ) { //E4X 增加节点命令 pFolder[0].appendChild(newNode); docName.text = ""; } } private function removeDoc():void { var node:XML = XML(tree.selectedItem); if( node == null ) return; if( node.localName() != "Pfolder" ) return; var children:XMLList = XMLList(node.parent()).children(); for(var i:Number=0; i < children.length(); i++) { //E4X匹配表达式 if( children[i].@label == node.@label ) { //E4X 删除节点命令 delete children[i]; } } } ]]--> </mx:Script> <mx:Tree id="tree" showRoot="true" fontSize="12" top="72" left="50" dataProvider="{docData}" labelField="@label" height="225" width="300"/> <mx:VBox> <mx:HBox> <mx:Button label="添加文件到:我的音乐" fontSize="12" click="addDoc();"/> <mx:TextInput id="docName" fontSize="12"/> </mx:HBox> <mx:Button label="删除文件" fontSize="12" click="removeDoc();"/> </mx:VBox> </mx:Application>