对于使用as3解析类似如下有CDATA的xml其实很简单,具体是要了解xml的等级关系。
文件名:test.xml
<data>
<s name="bj"><![CDATA[北京]]></s>
<s name="sh"><![CDATA[上海]]></s>
</data>
在上面的xml中s这一级的内容有:attrbute: name和其自己的内容(即<s></s>中间的内容)。
as3使用XML类实现读取的功能,代码如下:
public function Load()
{
var request:URLRequest = new URLRequest(urlRoot + "text.xml");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, handle);
loader.load(request);
}
public function handle(e:Event)
{
var loader:URLLoader = URLLoader(e.target);
var resultVar:String = loader.data;
readXML(resultVar);
}
public function readXML(str:String)
{
var xml:XML = new XML(str);
var place:Object = new Object ();
for each(var child:XML in xml["s"])
{
place[child.@name] = child.toString(); // 这里使用toString即可获得CDATA内容
}
}