基于params的动态XML过滤
跟进质询 我试图动态创建查询部分,以便参数和键接管构建条件部分。只是为了表明:基于params的动态XML过滤,xml,actionscript-3,Xml,Actionscript 3,跟进质询 我试图动态创建查询部分,以便参数和键接管构建条件部分。只是为了表明: //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..*.(
//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
此处的注释表示括号内的表达式不应是字符串。同意
那么,除了使用
subjects()
,由于我们正在基于搜索的参数动态构建搜索查询,因此当前无法解决此问题
任何提示/想法都会很有帮助。在循环中进行过滤怎么样
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);
是的,我明白了。但是,根据输入参数的不同,它可能是一个或多个,我正在尝试创建一个动态查询,其中包含一个或多个要作为子代搜索的参数。我已更改了答案。请注意,xmlData.*返回根节点的子节点,而不是所有子节点,否则该方法可能会在较小的块中反复返回相同的子树。好的,这会起作用。我们在不同的子体上迭代相同的列表。伟大的