2011-06-10 118 views
1

我正在尝试筛选我的xml,以便不显示子节点。 这个XML然后将被用作我的advanceddatagrid的数据提供者。 鉴于这种XML:Flex e4x筛选出儿童

<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'));仍然显示的每一个节点,即使显示虚假的那些..

任何帮助,将不胜感激..

回答

1

没关系,这是我如何解决它现在:

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

+1这会学我:) – Ryan 2011-06-10 13:05:13

0

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

folder1下的所有项目元素都是folder1的子节点。由于它具有 display =“true”,所以跟踪将显示其所有子级。

其他人,这是XML格式正确的搜索?