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

如何使用Flex从服务器读取XML数据?,xml,apache-flex,web-applications,Xml,Apache Flex,Web Applications,我认为从服务器请求XML格式数据的最简单方法是使用一个PHP/JSP/ASP.net页面,该页面实际上基于HTTP GET参数生成XML,并从Flex调用/加载该页面 使用Flex库类如何实现这一点?没关系,找到了:我知道您已经找到了它,但下面是一些示例代码: public var dataRequest:URLRequest; public var dataLoader:URLLoader; public var allowCache:Boolean; dataLoader = new UR

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


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

没关系,找到了:

我知道您已经找到了它,但下面是一些示例代码:

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在缓存这样的东西时非常糟糕,如果你不想的话。

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

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