Горизонтальный контроль с провайдером данных XML - PullRequest
0 голосов
/ 04 марта 2010

Я использую элемент управления HorizontalList с файлом XML в качестве поставщика данных. Вот как выглядит XML:

<data>
    <zone name="Europe">
        .
        .
        .
    </zone>
    <zone name="Japan">
        <stores>
            .
            .
            .
        </stores>
        <collections>
            <collection id="id1">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
            </collection>
            <collection id="id1Bis">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
            </collection>
            <collection id="id2">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
            </collection>
            <collection id="id2Bis">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
        </collections>
        <clarities>
            .
            .
            .
        </clarities>
    </zone> 
</data>

А вот так выглядит мой элемент управления

<mx:XML id="data" source="assets/SOD_division.xml"/>

<mx:HorizontalList 
    dataProvider="{data.division.(@name=='Japan').collections}"
    columnCount="2"
    itemRenderer="Renderer"
    width="500"
    horizontalScrollPolicy="off"
    />

Я попытался использовать массив объектов в качестве поставщика данных. Средство визуализации элементов работает, и горизонтальщик ведет себя так, как я ожидаю. Тем не менее, когда я использую XML-файл, он пуст ....

Я не знаю, почему это не работает ... -_- '...

Спасибо за любую помощь, которую вы можете оказать =)

С уважением, BS_C3

1 Ответ

1 голос
/ 04 марта 2010

Первое, что я заметил, это то, что ваш DP установлен как:

dataProvider="{data.division.(@name=='Japan').collections}"

Но это не структура вашего XML. Следуя вашему примеру XML, ваш DP должен быть:

dataProvider="{data.zone.(@name=='Japan').collections}"

Теперь вернемся к объекту XML, когда вам, вероятно, нужен объект XMLList, и в этом случае ваш DP должен быть

dataProvider="{data.zone.(@name=='Japan').collections.collection}"

или если вас не волнует местное имя детей:

dataProvider="{data.zone.(@name=='Japan').collections.children()}"
...