Xml AdobeFlex操作脚本-响应对象
我有一个AdobeFlex应用程序,从cgi脚本中,我接收XML形式的响应对象Xml AdobeFlex操作脚本-响应对象,xml,actionscript-3,apache-flex,actionscript,Xml,Actionscript 3,Apache Flex,Actionscript,我有一个AdobeFlex应用程序,从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 {
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”处的响应对象:
插入
但是警告“hasOwnProperty(result):”显示“False”
是XML的最新版本。请尝试以下操作:
private function httpResult(e:Event):void
{
var result:XML = XML(e.target.data);
Alert.show("has update property: " + result.hasOwnProperty("update"));
}
编辑:为清楚起见,请查看以下代码:
var xml:XML = XML("<result><update>insert</update></result>");
trace("XML:", xml);
trace("result:", xml.hasOwnProperty("result"));
trace("update:", xml.hasOwnProperty("update"));
var-xml:xml=xml(“插入”);
跟踪(“XML:”,XML);
跟踪(“结果:”,xml.hasOwnProperty(“结果”);
跟踪(“更新:”,xml.hasOwnProperty(“更新”);
控制台中的输出如下所示:
XML: <result>
<update>insert</update>
</result>
result: false
update: true
XML:
插入
结果:错误
更新:正确
-1。我很抱歉;这与提供的代码有何不同?除了删除第一个警报并更改第二个警报上的文本字符串外,您还做了其他操作吗?@www.Flextras.com,@Anton抱歉,我只是忘记更改result.hasOwnProperty()调用中的值。我已经编辑并更正了代码。我删除了对您的更改的否决票。我怀疑你的思路是对的。我认为原始代码中的“双重转换”可能有问题;但我需要一步一步地通过代码来确定。我认为不需要对数据进行两次转换。尝试var结果:XML=XML(e.target.data)
或var结果:XML=e.target.data为XML代码>但不是两者都有。我的直觉是您需要第一个。@www.Flextras.com,第一个(XML(e.target.data)
)将字符串
结果转换为XML
(如果格式正确),第二个方法将尝试将字符串
读取为XML
,这将失败,因为字符串
不是XML
(它是XML格式的字符串)。顺便说一句,双重施法不是问题,它只是多余的…@NemoSteine.target.data
是一个通用的Flex对象;不是一串。我知道在某些情况下使用as Something
vsSomething()
会出现转换问题。我只是不知道,在我的脑海里,哪一个是有问题的。听起来我的直觉是对的;第一个是正确的。
XML: <result>
<update>insert</update>
</result>
result: false
update: true