问题
我想从XML文档中或服务端脚本产生的XML中读取XML数据
解决办法
使用URLLoader.load() 方法且设置dataFormat属性为DataFormat.TEXT读取数据,通过complete
事件处理函数转换载入的数据为XML实例
讨论
ActionScript3.0中发送和读取数据由新的URLLoader及其相关类完成,读取XML也没有什么特殊
的地方。
读取XML文件的步骤如下:首先创建URLLoader实例以简单文本形式读取数据,其dataFormat 属
性必须设置为DataFormat.Text,监听并添加complete事件处理函数,看下面的例子演示:
package{
importflash.display.*;
importflash.events.*;
importflash.net.*;
importflash.util.*;
public class LoadXMLExample extends Sprite
{
public function LoadXMLExample( )
{
var loader:URLLoader=new URLLoader( );
loader.dataFormat=DataFormat.TEXT;
loader.addEventListener(Event.COMPLETE,handleComplete);
loader.load(newURLRequest("example.xml" ));
}
private functionhandleComplete(event:Event):void
{
try{
//Convert thedownlaodedtextintoan XMLinstance
var example:XML=new XML( event.target.data);
//At thispoint,exampleisreadytobeused withE4X
trace(example);
}catch( e:TypeError){
//If wegethere,thatmeansthedownloadedtextcould
//notbeconvertedintoanXMLinstance,probablybecause
//it isnotformattedcorrectly.
trace("CouldnotparsetextintoXML" );
trace(e.message );
}
}
}
}
上面的例子中之所以用 try...catch 块,是考虑到读取的数据有可能不是 XML 格式数据,
TypeError 异常就是不能成功转换为XML实例时抛出的。
摘自coolbook