首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex 递归剔除XMLList中节点

2012-06-26 
Flex 递归删除XMLList中节点这个问题思考了很久,写个很多种递归,也走了很多弯路,为了让你们也少走弯路。我

Flex 递归删除XMLList中节点
这个问题思考了很久,写个很多种递归,也走了很多弯路,为了让你们也少走弯路。我把解决方法写下。

适合场景:xmlList中递归删除自身节点。
实例:
xmlList=<power name="视图" power_id="001" code="MONITOR_VIEW" state="unchecked" visible="true">
  <power name="主机视图" power_id="001001" code="HOST_COMPUTER_VIEW" state="unchecked" visible="true"/>
  <power name="定制视图" power_id="001002" code="BUSINESS_VIEW" state="unchecked" visible="true"/>
  <power name="营业部视图" power_id="001005" code="SUBCORE_VIEW" state="unchecked" visible="true"/>
  <power name="列表视图" power_id="001007" code="ALL_LIST" state="unchecked" visible="false"/>
</power>
<power name="监控" power_id="010" code="MONITOR_MENU" state="unchecked" visible="true">
  <power name="监视器管理" power_id="002001" code="MONITOR_MANAGE_LIST" state="unchecked" visible="true"/>
  <power name="模版管理" power_id="002006" code="MONITOR_TEMPLATE_MANAGE" state="unchecked" visible="true"/>
  <power name="任务设置" power_id="005004" code="TASK_SETTING" state="unchecked" visible="true">
  </power>
</power>
<power name="作业" power_id="100" code="JOB" state="unchecked" visible="false">
  <power name="作业网管理" power_id="100001" code="JOB_NET_MANAGE" state="unchecked" visible="false"/>
</power>

删除方式:找到visible="false" 删除,检索过滤

实现:递归遍历

代码:



以上代码说明:首先使用delete以后xmllist的长度也在减少,如果用for each中循环的次数也减少了,导致节点没有删干净。所以解决是使用倒序从大到小删除。

其次删除的时候一定要用它的索引index.如果是使用xmlList[i]会乱删。

热点排行