带有重复节点的arraycollection

在HTTPService调用的resultHandler中,我已经为repeatCollection分配了一个重复节点。在重复节点内部是有时重复的其他节点,有时不重复。例如,这里选项节点重复内部选项。
<response> 
   <options>
      <option> <var1> part1 </var1> <var2> part2 </var2> </option>
      <option> <var1> part1 </var1> <var2> part2 </var2> </option>
   </options>
   <options>....
</response>
有时它不会像这样重复。
 <response> 
       <options>
          <option> <var1> part1 </var1> <var2> part2 </var2> </option>
       </options>
       <options>....
 </response>
我在for循环中遇到了actionscript错误。我如何解释这两种情况? 这是我的for循环将对象分配给值对象:
protected function xml_resultHandler(event:ResultEvent):void
  {
  var data:ArrayCollection = xml.lastResult.response.option;
  var valueobjects:valueObject;

  for each (var characteristic:Object in data)
   {
                        valueobject = new valueobject;
                        valueobject.var1 = characteristic.option[0].var1;
                        valueobject.var2 = characteristic.option.var2;
                        datamodel.addItem(valueobject);
                    }
} 在此示例代码中,如果没有多个选项节点,则分配var1将中断,如果存在多个对象节点,则var2将中断。我可以把它分开并分别迭代它们,但是有更有说服力的解决方案吗?     
已邀请:
这样可以吗?
protected function xml_resultHandler(event:ResultEvent):void
{
    var data:ArrayCollection = xml.lastResult.response.option;
    var valueobjects:valueObject;

    for each (var characteristic:Object in data)
    {
                    valueobject = new valueobject;
                    if(characteristic.option is ArrayCollection)
                        valueobject.var1 = characteristic.option[0].var1;
                    else
                        valueobject.var2 = characteristic.option.var2;
                    datamodel.addItem(valueobject);
    }
}
我已经使用了与结果处理程序非常类似的东西,我不确定数据是否包含1行或多行并且似乎可以解决这个问题,似乎在使用点运算符进行E4X解析时它会返回一个对象或者取决于多重性的数组收集。     

要回复问题请先登录注册