Добавление трех или более XMLLISTCollections в Flex - PullRequest
0 голосов
/ 20 апреля 2011

У меня есть структура 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);

и затем передайте его провайдеру данных ..

treeDP.dataProvider = combXml;

но я получил ошибку.

Кто-нибудь знает, как объединить эти элементы в combXml?

1 Ответ

2 голосов
/ 20 апреля 2011

Вы можете использовать непосредственно один источник XML для 3 комбинированных списков как

<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 object

равно

var axList:XMLList = myXml.a;

РЕДАКТИРОВАНИЕ: Чтобы получить все элементы [a, b, c] name , вы должны использовать его как

<mx:ComboBox id="d" dataProvider="{XML(myXml).elements('*').name}" labelField="name"/>

Надежды, которые помогают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...