如何使用Flex从服务器读取XML数据?

时间:2008-10-08 20:34:53

标签: xml flex web-applications

我认为以XML格式从服务器请求数据的最简单方法是使用PHP / JSP / ASP.net页面实际生成基于HTTP GET参数的XML,并以某种方式从Flex调用/加载此页面。

如何使用Flex库类实现这一目标?

3 个答案:

答案 0 :(得分:2)

我想补充一点,你也可以使用mx:HTTPService。如果指定returnFormat属性,则会获得XML文档而不是简单文本:

<mx:HTTPService resultFormat="e4x" ..../> or <mx:HTTPService resultFormat="xml" .../>

答案 1 :(得分:1)

答案 2 :(得分:1)

我知道你已经找到它,但这里有一些示例代码:

public var dataRequest:URLRequest;
public var dataLoader:URLLoader;
public var allowCache:Boolean;

dataLoader = new URLLoader();
dataLoader.addEventListener(Event.COMPLETE, onComplete);
dataLoader.addEventListener(ProgressEvent.PROGRESS, onProgress);
dataLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
dataLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
dataLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);

dataRequest = new URLRequest();
dataRequest.url = "xmlfilelocation.xml" + ((this.allowCache) ? "" : "?cachekiller=" + new Date().valueOf());

dataLoader.load(dataRequest);

public function onComplete(event:Event):void{
    trace("onComplete");
}
public function onProgress(event:ProgressEvent):void{
    trace("onProgress");
}
public function onIOError(event:IOErrorEvent):void{
    trace("onIOError");
}
public function onSecurityError(event:SecurityErrorEvent):void{
    trace("onSecurityError");
}
public function onHTTPStatus(event:HTTPStatusEvent):void{
    trace("onHTTPStatus");
}

我想添加“allowCache”,因为当你不想要它时,Flash / Flex很难缓存这样的东西。