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 только с узлами, для которых свойство display установлено в 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'));, все узлы по-прежнему отображаются, даже те, у которых display false ..

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


person Pmarcoen    schedule 10.06.2011    source источник


Ответы (2)


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

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

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

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

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

person Drenai    schedule 10.06.2011