我有一个XML结构:
<xml>
<a>
<name>A</name>
<schl>AB</schl>
</a>
<a>
<name>B</name>
<schl>BC</schl>
</a>
<b>
<name>C</name>
<schl>CD</schl>
</b>
<c>
<name>D</name>
<schl>DE</schl>
</c>
</xml>
现在,我需要一个XMLListCollection变量,它应该只包含元素a,b和c的名称元素。 所以,我试过这样的事情:
var combXml:XMLListCollection = new XMLListCollection();
combXml.addItem(new XMLListCollection(xml.a.name);
combXml.addItem(new XMLListCollection(xml.b.name);
combXml.addItem(new XMLListCollection(xml.c.name);
然后将其传递给dataprovider ..
treeDP.dataProvider = combXml;
但是我收到了一个错误。
有谁知道如何将这些元素组合到combXml中?
答案 0 :(得分:2)
您可以直接将一个XML源用于3个ComboBoxes
<mx:ComboBox id="a" dataProvider="{myXml.a}" labelField="name"/>
<mx:ComboBox id="b" dataProvider="{myXml.b}" labelField="name"/>
<mx:ComboBox id="c" dataProvider="{myXml.c}" labelField="name"/>
myXml 是xml varaiabe, myXml.a 返回 XmlList 对象
等于
var axList:XMLList = myXml.a;
编辑:要获取所有元素[a,b,c] 名称,您应该将其用作
<mx:ComboBox id="d" dataProvider="{XML(myXml).elements('*').name}" labelField="name"/>
希望有所帮助