当xml是单个节点时,它不会解析xml

时间:2010-05-10 04:20:52

标签: xml flex actionscript-3 httpservice

我的script.php会返回此XML

<all>
  <item>
     <field1>value1</field1>
     <field2>value2</field2>
  </item>

  <item>
     <field1>value1</field1>
     <field2>value2</field2>
  </item>
</all>

HTTPService使用默认resultFormat="object"但我没有声明它,因为它是默认值。

然后我将它绑定到List

dataProvider="{getDataHTTP.lastResult.all.item}"

当返回的item的数量超过1时,我没有遇到任何问题。但是当它只有1 item时,我收到错误,无法将XMLList转换为mx.collections.IList。< / strong>

我尝试了不同的解决方案,包括尝试将其转换为XMLListCollection,但仍然会为单个项目提供错误。有谁知道可能解决这个问题的方法?

2 个答案:

答案 0 :(得分:2)

点击resultFormat="xml"并设置dataProvider="{getDataHTTP.lastResult.item}"

答案 1 :(得分:1)

import mx.rpc.xml.SimpleXMLDecoder;
import mx.rpc.xml.SimpleXMLEncoder;

[Bindable]public var xmlDataObj:Object = new Object(); 

private function yourResultEvent(evt:ResultEvent):void{
var resultXml:XMLDocument = new XMLDocument(evt.result as String);
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
xmlDataObj= decoder.decodeXML(resultXml).all.item;
}

这样您就不必担心将resultFormat更改为XML或e4x。