Xml 具有重复节点的arraycollection

Xml 具有重复节点的arraycollection,xml,apache-flex,mxml,arraycollection,Xml,Apache Flex,Mxml,Arraycollection,在HTTPService调用的resultHandler中,我为arrayCollection分配了一个重复节点。在该重复节点内是有时重复,有时不重复的其他节点。例如,在这里,选项节点在选项内部重复 } 在此示例代码中,如果没有多个选项节点,则分配var1将中断,如果有多个对象节点,则分配var2将中断。我可以将其分解并分别迭代,但有更雄辩的解决方案吗?这样可以吗 protected function xml_resultHandler(event:ResultEvent):void {

在HTTPService调用的resultHandler中,我为arrayCollection分配了一个重复节点。在该重复节点内是有时重复,有时不重复的其他节点。例如,在这里,选项节点在选项内部重复

}

在此示例代码中,如果没有多个选项节点,则分配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解析时,它将根据多重性返回对象或arraycollection。

是的,感谢您的输入。我可以测试节点是否为arraycollection的知识至关重要。
 <response> 
       <options>
          <option> <var1> part1 </var1> <var2> part2 </var2> </option>
       </options>
       <options>....
 </response>
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);
                    }
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);
    }
}