xml: <?xml version="1.0" encoding="UTF-8"?> <node label="组织机构" value="ROOT"> <node label="第三方厂商" value="THIRD"> <node label="迪科厂商" value="DIC"> </node> <node label="福富厂商" value="DIC"> </node> <node label="亚信" value="DIC"> </node> <node label="国讯朗讯" value="DIC"> </node> </node> <node label="省公司" value="PROVICE"> <node label="CRM系统" value="DIC"> </node> <node label="New厂商" value="DIC"> </node> </node> </node> 实现funciton 代码 tree.dataProvider =getXML(new XMLList(menu)); private function getXML(xmlList:XMLList):XML { var str:String=StringUtil.trim(searchText.text); //插入 var xmlChildren:XMLList=xmlList.children(); //子节点 var xml:XML=<node/>; //返回的xml if(xmlList.hasOwnProperty("@label")) xml.@label=xmlList.@label; if(xmlList.hasOwnProperty("@value")) xml.@value=xmlList.@value; for(var i:int=0;i<xmlChildren.length();i++) { if(xmlChildren[i].children().length()>0) //有子节点时 { var xmlGet:XML=getXML(new XMLList(xmlChildren[i])); //递归得到的xml if(xmlGet.children().length()>0) //有子节点就增加 { xml.appendChild(xmlGet); } else if(xmlGet.@label.search(new RegExp(str,'gi'))>-1){ xml.appendChild(xmlGet); } }else //无子节点时 { if(xmlChildren[i].@label.search(new RegExp(str,'gi'))>-1) { xml.appendChild(xmlChildren[i]); } } } return xml; }