2010-05-10 47 views
1

script.php返回該XML不解析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

resultFormat="xml"並設置dataProvider="{getDataHTTP.lastResult.item}"

+0

不幸的是沒有工作。當我這樣做時,即使在多個「項目」的情況下,我也完全沒有輸出。拉我的頭髮。 – tag 2010-05-10 05:12:35

+0

@tag try'resultFormat =「e4x」' – Amarghosh 2010-05-10 05:18:34

+0

@tag:我認爲,問題是,XML不可綁定。您甚至可能在運行時收到警告,無法創建綁定。正如Amargosh所說,您需要指定格式,以便flex可以將其包裝到一些可綁定的代理中。 – back2dos 2010-05-10 07:21:39

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。

相關問題