flex xml如何遍历?

水中影子 2009-11-27 12:22:50
现有xml格式如下:
<mx:XML id="xmlSource">
<node label="grandFather" state="unchecked">
<node label="Father" state="unchecked">
<node label="son" state="unchecked">
<node label="1001" state="unchecked">
<node label="100101" state="unchecked">
</node>
</node>
</node>
</node>
<node label="Uncle" state="unchecked">
<node label="son" state="unchecked">
<node label="1001" state="unchecked">
<node label="100101" state="unchecked">
</node>
</node>
</node>
</node>
<node label="Aunt" state="unchecked">
........省略
</node>
</node>
</mx:XML>

如何循环xml判定state="checked"项的lable

我觉得得要递归,可具体不知道如何实现,请高手指教
...全文
1145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
水中影子 2009-12-01
  • 打赏
  • 举报
回复
hasComplexContent()是检查是否有复杂函数。
不好意思,搞定了
很感谢楼上的
水中影子 2009-12-01
  • 打赏
  • 举报
回复
楼上的hasComplexContent()是什么函数,使用报错
wanggh_work 2009-12-01
  • 打赏
  • 举报
回复
楼主试试这个
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:XML id="xmlSource">
<node label="grandFather" state="unchecked">
<node label="Father" state="unchecked">
<node label="son" state="unchecked">
<node label="1001" state="unchecked">
<node label="100101" state="unchecked">
</node>
</node>
</node>
</node>
<node label="Uncle3" state="unchecked">
<node label="son2" state="unchecked">
<node label="1002" state="unchecked">
<node label="100102" state="unchecked">
</node>
</node>
</node>
</node>
<node label="Uncle3" state="unchecked">
<node label="son3" state="unchecked">
<node label="1003" state="unchecked">
<node label="100103" state="checked">
</node>
</node>
</node>
</node>
</node>
</mx:XML>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;

private function onClick():void{
var xmlList:XMLList = xmlSource.children();
findChecked(xmlList);
}

private function findChecked(xmlList:XMLList):void{
for(var i:int =0;i<xmlList.length();i++){
if(xmlList[i].@state.toString()== "checked"){
Alert.show(xmlList[i].@label.toString());
break;
}else{
if(xmlList[i].hasComplexContent()){
findChecked(xmlList[i].children());
}
}
}
}
]]>
</mx:Script>
<mx:Button label="test" click="onClick()"/>
</mx:WindowedApplication>
水中影子 2009-12-01
  • 打赏
  • 举报
回复
等待高手出现
水中影子 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gundamff 的回复:]
大概就是这样
xml.*.elements("node").(attribute("state")=="unchecked")
没测试
这样返回是个xmllist
[/Quote]
谢谢,帮助,不过,不是做不出想要结果
水中影子 2009-11-30
  • 打赏
  • 举报
回复
不好意思,今天试试
gundamff 2009-11-29
  • 打赏
  • 举报
回复
哎?我被无视了?
水中影子 2009-11-28
  • 打赏
  • 举报
回复
高手,快出现吧,急用!!!!
gundamff 2009-11-28
  • 打赏
  • 举报
回复
大概就是这样
xml.*.elements("node").(attribute("state")=="unchecked")
没测试
这样返回是个xmllist
JonathanS666 2009-11-27
  • 打赏
  • 举报
回复
Debug的时候看看 result的变量

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧