xin's blog

Just have a little faith.
  首页  :: 管理

用递归实现简单的tree

Posted on 2009-12-29 01:09  greatxin  阅读(402)  评论(0)    收藏  举报
代码
//
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class TreeExample extends Sprite
{
private var _xml:XML;
private var _strTab:String = "--";
private var _space:String = "";
public function TreeExample()
{
this.loadXML();
}
private function loadXML():void
{
var urlLoader:URLLoader
= new URLLoader();
var url:String
= "tree.xml";
urlLoader.addEventListener(Event.COMPLETE, complete_urlLoader);
urlLoader.load(
new URLRequest(url));
}
private function complete_urlLoader(evt:Event):void
{
this._xml = XML(evt.target.data);
this.createTree(this._xml);
}
/**
* 递归
* @param xml
*
*/
private function createTree(xml:XML):void
{
var childList:XMLList
= xml.children();
trace(
this._space + xml.@label);
if(xml.children().length() > 0)
{
for (var i:int = 0; i < childList.length(); i++)
{
this._space += this._strTab;
this.createTree(childList[i]);
}
}
this._space = this._space.substr(0, this._space.length - 2);
}
}
}

 

//

xml文件:

 

代码
<?xml version="1.0" encoding="utf-8" ?>
<data label="">
<item label="科目">
<item label="语文">
<item label="第一个语文课"/>
<item label="第二个语文课"/>
</item>
<item label="数学">
<item label="第一个数学课">
<item label="第一个数学课的内容"/>
</item>
<item label="第二个数学课"/>
</item>
</item>
</data>