не анализирует XML, когда это один узел - PullRequest
1 голос
/ 10 мая 2010

my 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.

Я пробовал разные решения, в том числе пытался привести его к XMLListCollection, но он по-прежнему выдает ошибку для отдельных предметов. Кто-нибудь знает способ решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 10 мая 2010

Сделать resultFormat="xml" и установить dataProvider="{getDataHTTP.lastResult.item}"

1 голос
/ 10 мая 2010
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;
}

Таким образом, вам не нужно беспокоиться об изменении формата результата на XML или e4x.

...