我有一个像这样的分层xml结构:
<employee name="AAA" group="1"..../>
<employee name="BBB" group="1"...>
<employee name="CCC" group="1".../>
</employee>
<employee name="DDD" group="0"... />
<employee name="EEE" group="0"... />
</employee>
我加载XML,然后将数据传递给hierarchicalcollectionview:
var model:XML = .... (load the data)
var hData:HierarchicalData = new HierarchicalData(model);
hCol = new HierarchicalCollectionView(hData);
然后,我将hCol用作自定义组件的dataProvider。该组件不支持dataDescriptor
我想只显示属性group =“1”的项目。 (本例中为AAA,BBB和CCC)
我该怎么办?我测试了filterFunction属性,但它只过滤了根节点(我认为) 我必须按该属性
过滤所有XML项目提前致谢
的Cristian
答案 0 :(得分:0)
我使用它来过滤我的XML树,除了我只显示与我正在运行的搜索匹配的最终节点。你可以修改它以返回带有子节点的节点,但它可以让你继续而不是HiearchicalCollection
private function filterXML(itemXML:XML, mainXML:XML, text:String) : XML {
if(itemXML.hasComplexContent()) {
for each(var childXML : XML in itemXML.children()) {
filterXML(childXML, mainXML, text);
}
} else {
var regex :RegExp = new RegExp(text, "gi");
if(itemXML.@group.toXMLString().search(regex)!=-1){
mainXML.appendChild(itemXML);
}
}
return mainXML;
}