有一些我无法解决的问题:当我在包含多个层次结构的 XMLList 中搜索特定节点时,过滤器永远不会在顶级父节点中搜索。
例如,如果我有一棵这样的树:
<node id="a0KQ0000002PTN5MAO" parentId="">
<node id="a0KQ0000002PT8iMAG" parentId="a0KQ0000002PTN5MAO" />
</node>
如果我做了这样的研究:
var aNode = ac_hierarchy.source..node.(@id == "a0KQ0000002PTN5MAO")[0];
我不会得到任何结果,“aNode”将为空:/
有什么想法吗?
[编辑] 还有一些我无法理解的东西(我正在寻找 2 天:/):
我使用以下方法递归地将节点添加到 ac_hierarchy:
private function add_item_to_hierarchy(node:Node_vo):XML {
var firstNode:XML = ac_hierarchy.getItemAt(0) as XML;
var parentNode:XML;
if (firstNode.@[Node_vo.att_id] == node.parentId)
parentNode = firstNode;
else
parentNode = ac_hierarchy.source..node.(@[Node_vo.att_id] == node.parentId)[0];
var test:XML = ac_hierarchy.source..node.(@[Node_vo.att_id] == node.parentId)[0];
var test2:XML = ac_hierarchy.source..node.(@[Node_vo.att_id] == "a0KQ0000002PT8iMAG")[0];
newXmlNode = node.toXML();
// Add the current node to his parent node
parentNode.appendChild(newXmlNode);
}
我第一次使用“node.parentId”参数等于“a0KQ0000002PTN5MAO”方法调用“add_item_to_hierarchy”时,ac_hierarchy 看起来像:
<node id="a0KQ0000002PTN5MAO" parentId="" />
var test:XML 已填充。
var test2:XML 未填充。
它正确地附加了Child。
第二次,“node.parentId”参数等于“a0KQ0000002PT8iMAG”,ac_hierarchy 看起来像:
<node id="a0KQ0000002PTN5MAO" parentId="">
<node id="a0KQ0000002PT8iMAG" parentId="a0KQ0000002PTN5MAO"/>
</node>
var test:XML 已填充。
var test2:XML 已填充。
它也正确地附加了Child。
第三次,“node.parentId”参数再次等于“a0KQ0000002PT8iMAG”,ac_hierarchy 看起来像:
<node id="a0KQ0000002PTN5MAO" parentId="">
<node id="a0KQ0000002PT8iMAG" parentId="a0KQ0000002PTN5MAO">
<node id="a0KQ0000002PTL9MAO"/>
</node>
</node>
var test:XML 未填充。
var test2:XML 已填充。
但这一次, var "test" 为空(虽然 "node.parentId" 值与之前的循环相同,并且 test2 正确填充)!!!
我很快就会弄坏我的电脑:/
谢谢你的帮助。