Flex e4x отфильтровывает детей - PullRequest
1 голос
/ 10 июня 2011

Я пытаюсь отфильтровать 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 ]

1 голос
/ 10 июня 2011

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

var childNodes:XMLList = new XMLList(data.descendants("item").(@display == 'false'));
for ( var i:int = childNodes.length() - 1; i >= 0; i-- ) {
    delete childNodes[i];
}
0 голосов
/ 10 июня 2011

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

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

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

...