【发布时间】:2013-04-13 22:17:38
【问题描述】:
我有 Adobe Flex 应用程序,我从 cgi 脚本接收响应对象为 XML
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, httpResult);
loader.load(request);
private function httpResult(e:Event):void
{
Alert.show("XML: " + new XML(e.target.data));
var result:XML = XML(e.target.data) as XML;
Alert.show("hasOwnProperty(result): " + result.hasOwnProperty("result"));
}
下面是我在警报“XML:”中的响应对象
<result>
<update>insert</update>
</result>
但警报“hasOwnProperty(result):”显示“False”
【问题讨论】:
-
我认为您不需要将数据转换两次。尝试
var result:XML = XML(e.target.data)或var result:XML = e.target.data as XML;,但不能同时使用。我的直觉是你需要第一个。 -
@www.Flextras.com,第一个 (
XML(e.target.data)) 将将String结果转换为XML(如果格式正确),第二种方法将尝试将String读取为XML,这将失败,因为String不是XML(它是一个XML 格式的字符串)。顺便说一句,双重铸造不是问题,它只是多余的...... -
@NemoStein
e.target.data是一个通用的 Flex 对象;不是字符串。我知道我在某些情况下使用as Something与Something()时遇到了转换问题。我只是不知道,在我的脑海中,哪一个是有问题的。听起来我的直觉是对的;第一个是正确的。
标签: xml actionscript-3 apache-flex actionscript