Проблема привязки XML к Flex Tree - PullRequest
1 голос
/ 23 января 2009

У меня есть XML со значением, подобным следующему:

<products>
  <product id="1" name="All Products">
    <code>000</code>
    <shortname>ALL</shortname>
    <cost>0.0</cost>
    <product id="2" name="Product Group A">
      <code>001</code>
      <shortname>A</shortname>
      <cost>0.0</cost>
      <product id="4" name="Product A">
        <code>11</code>
        <shortname>ProductA</shortname>
        <cost>0.4</cost>
      </product>
    </product>
  </product>
</products>

Я объявляю XMLList, вызывая xml.children (), и привязываю его к дереву так:

var products:XMLList = xml.children()

<mx:Tree id="treeProducts" dataProvider="{products}" labelField="@name" width="100%" />

Однако, мое дерево не знает, для каких элементов XML создавать узлы, поэтому я получаю узлы для каждого элемента, то есть:

-All Products
  - 000
  - ALL
  - 0.0
  - Product Group A
    - 001
    - A
    - 0

Что я действительно хочу, так это просто показать значение @name для каждого <product>:

  • Все товары
    • Группа продуктов A
      • Продукт A

Я что-то упускаю совершенно очевидное?

1 Ответ

2 голосов
/ 24 января 2009

Если бы вы просто собирали узлы из дерева, я бы подумал, что лучше всего использовать нотацию E4X:

xml..(@name != '')

(или некоторые такие, не проверенные на точность)

Это не сохранит древовидную структуру. Поскольку вам нужно конкретное представление данных дерева, я бы предложил применить реализацию ITreeDataDescriptor , которая фильтрует именованные узлы в своих методах:

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