基于params的动态XML过滤

时间:2012-02-07 23:06:19

标签: xml actionscript-3

关于Filtering XML based on multiple params - Flex的跟进问题。

我试图动态创建Query部分,以便params和key接管构建条件部分。只是为了表明:

 //building a dynamic query like this 
var q1:String = "descendants (\"E1" ) == \"111\" )"; 
Alert.show("Query>>"+q1.toString());     // Output: descendants ("E1" ) == "111"

var r2:XMLList = xmlData..*.(descendants ("E1" ) == "111"); //returns correct result 
var r1:XMLList = xmlData..*.(q1.toString());  // weird response, 
                                              // doesn't filter out anything

此处的评论Filtering XML based on multiple params - Flex表示括号内的表达式不应该是字符串。同意。

那么,是否有任何其他方法可以过滤掉XML中的多个参数而不是使用 descendants(),由于我们正在根据搜索的参数动态构建搜索查询,因此目前无法解决问题?

任何指示/想法都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

如何在循环中进行过滤?

var filters : Array = [ { key : "E1", value : "333" }, { key : "D1", value : "333" } ];

var searchItem : XMLList = xmlData.*;
for each (var filter:Object in filters)
    searchItem = searchItem.( descendants ( filter.key ) == filter.value);

trace (searchItem);