这是xml数据:
<root>
<recommendedMaterials>
<value label="Aluminium" data="0" />
<value label="Iron" data="0" />
</recommendedMaterials>
</root
我的代码:
<mx:Script>
<![CDATA[
public function populateRecommendedMaterials(xml_val:XML)
{
materials_Cmb.dataProvider=(xml_val.recommendedMaterials);
}
]]>
</mx:Script>
<mx:ComboBox x="212" y="164" id="materials_Cmb" dataProvider="materialsCmb_Dp"></mx:ComboBox>
</mx:Canvas>
问题是整个xml被填充。我只想要标签。 :(
答案 0 :(得分:4)
这里有两种方法,具体取决于您的需求。在任何一种情况下,您想要的数据都是recommendedMaterials
节点的 children ,而不是节点本身(这就是您所做的)。
materials_Cmb.dataProvider =
new XMLListCollection(xml_val.recommendedMaterials.children());
这应该已经成功了。请注意,我将XMLList包装在XMLListCollection中:对于mx:ComboBox,这不是必需的,因为它在内部也会这样做,但对于Spark组件,它是强制性的。
另一个更简洁的解决方案是找到所有“价值”节点,但我不知道这种方法是否适合您的账单。
materials_Cmb.dataProvider =
new XMLListCollection(xml_val..value);
另外,不要忘记在ComboBox中指定正确的'labelField':
<s:ComboBox labelField="@label" />
@符号表示XML属性。