Apache flex Flex e4x过滤掉子项

Apache flex Flex e4x过滤掉子项,apache-flex,filter,e4x,Apache Flex,Filter,E4x,我正在尝试筛选xml,以便不显示子节点。 然后,此xml将用作advanceddatagrid的数据提供程序。 鉴于此XML: <item text="folder1" display="true"> <item text="folder2" display="true"> <item text="node" display="true"> <item display="false"> <propert

我正在尝试筛选xml,以便不显示子节点。 然后,此xml将用作advanceddatagrid的数据提供程序。 鉴于此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>

瓦尔1
瓦尔2
我想要的是一个只有属性display设置为true的节点的XML。 因此,生成的XML应该是:

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

当我尝试跟踪(data.item.(@display==“true”)仍然显示每个节点,即使是显示为false的节点


任何帮助都将不胜感激。

我认为这是因为XML的格式

folder1下的所有项元素都是folder1的子节点。既然已经 display=“true”,则跟踪将显示其所有子项


其他人,这个XML格式正确吗?

我认为这是因为XML的格式

folder1下的所有项元素都是folder1的子节点。既然已经 display=“true”,则跟踪将显示其所有子项


其他人,这个XML格式正确吗?

好的,我现在就是这样解决的:

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

好吧,我现在就是这样解决的:

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