19.3.使用正则表达式在E4X中进行查询

19.3.1. 问题
如何通过使用正则表达式作为查询的一部分, 来创建复杂的E4X 查询?
19.3.2. 解决办法
以文本形式把正则表达式添加到E4X 语句中, 并调用正则表达式的test 方法。
19.3.3 讨论
通过结合正则表达式及E4X, 可以对XML 节点进行准确的筛选。正则表达式的文本语法允许你在不调用构造函数的情况下, 添加一个正则表达式。同时, 也可以对XML 节点的值或属性使用使正则表达式的test 方法。以下的代码行, 对item 节点的id 属性进行了测试:
+展开
-ActionScript
xmlItems.item.(/\d\d\d/.test(@id)).price

任何含有3 位数字id 属性的项目, 将会返回一个该属性的价格值。任何不包括这些字段或从正则表达式的test 方法返回true 的项目, 将不会返回任何值。下列代码展示了一个XML的循环回圈及通过E4X 表达式来对每个节点进行测试:
+展开
-ActionScript
private var xmlItems:XML = <order>
<item id="1">
<menuName>burger</menuName>
<price>3.95</price>
</item>
<item id="100">
<menuName>burger</menuName>
<price>3.95</price>
</item>
<item id="2000">
<menuName>fries</menuName>
<price>1.45</price>
</item>
</order>
private var arr:Array;
private function init():void {
arr = new Array();
for each ( var xml:XML in xmlItems) {
arr.push(xmlItems.item.(/\d\d\d/.test(@id)).price);
}t
trace(arr);
}

值得注意的是, 你可以使用E4X 查询作为控件中数据绑定的一个属性。

加支付宝好友偷能量挖...


评论(0)网络
阅读(75)喜欢(0)flash/flex/fcs/AIR