Flex e4x отфильтровывает детей

Я пытаюсь отфильтровать xml, чтобы дочерние узлы не отображались. Затем этот xml будет использоваться в качестве поставщика данных для моей расширенной таблицы данных. Учитывая этот XML:

<item text="folder1" display="true">
  <item text="folder2" display="true">
    <item text="node" display="true">
      <item display="false">
        <property1>val1</property1>
        <property2>val2</property2>
      </item>
    </item>
  </item>
</item>

То, что я хочу, - это XML только с узлами, у которых для свойства установлено значение true. Итак, итоговый XML должен быть:

<item text="folder1" display="true">
  <item text="folder2" display="true">
    <item text="node" display="true">
    </item>
  </item>
</item>

Когда я пытаюсь trace(data.item.(@display == 'true')); все узлы по-прежнему отображаются, даже те, у которых отображается false.

Любая помощь будет оценена..

2 ответа

Решение

Хорошо, вот как я решил это сейчас:

var childNodes:XMLList = new XMLList(data.descendants("item").(@display == 'false'));
for ( var i:int = childNodes.length() - 1; i >= 0; i-- ) {
    delete childNodes[i];
}

Я думаю, что это происходит из-за формата этого XML.

Все элементы элемента в папке folder1 являются дочерними узлами folder1. Поскольку он имеет display="true", тогда в трассировке будут отображаться все его дочерние элементы.

Кто-нибудь еще, правильно ли отформатирован этот XML для поиска?

Другие вопросы по тегам