在我的XML文件中
<report> <daily_incomes> <daily_income> <date>2009-06-11</date> <income>100</income> </daily_income> </daily_incomes> </report>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; [Bindable] private var showData:ArrayCollection; private function show(event:ResultEvent):void { showData = event.result.report.daily_incomes.daily_income; } ]]> </mx:Script> <mx:HTTPService id="myService" url="http://localhost:3000/ex.xml" result="show(event)"/> </mx:Text> <mx:Button click="myService.send()" x="10" y="-2" label="Button"/> <mx:List x="10" y="28" dataProvider="{showData}"></mx:List> </mx:Application>
daily_income想作为Arraycollection的一个元素被传入,但是这样是转化不了的.
不过把daily_income的个数改为超过一个就可以了:
<report> <daily_incomes> <daily_income> <date>2009-06-11</date> <income>0</income> </daily_income> <daily_income> <date>2009-06-12</date> <income>1</income> </daily_income> </daily_incomes> </report>
请问如何让xml数组里,只有一个值时Flax也能转为ArrayCollection
其实就是加一个判断,按你的xml改了下:
[code="js"]if(event.result.report.daily_incomes.daily_income is ObjectProxy)
{
showData.addItem(event.result.report.daily_incomes.daily_income);
}
else
{
showData = event.result.report.daily_incomes.daily_income;
} [/code]
可能是它本身设计的有问题吧
你可以判断一下呗,
如果是数量只有一个的话,就转换成确定的一个
加一个handler:
[code="js"]
[Bindable]
private var flvData:ArrayCollection=new ArrayCollection();
private function resultHandler(event:ResultEvent):void
{
if(event.result.minwt.doc is ObjectProxy)
{
flvData.addItem(event.result.minwt.doc);
}
else
{
flvData=event.result.minwt.doc;
}
this.myDataGrid.dataProvider=flvData;
this.mylb.text=this.flvData.getItemAt(0).docTitle.toString();
}
[/code]