Flex e4x过滤掉了孩子们

时间:2011-06-10 08:56:40

标签: flex filter 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>

我想要的是一个只包含属性显示设置为true的节点的XML。 因此,生成的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 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我认为这是因为XML的格式而发生的。

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

其他任何人,这种XML格式是否正确进行搜索?