Flex 4 E4X按属性过滤具有未定义的变量

时间:2010-08-24 15:25:14

标签: flex e4x

我有一些xml,我正在尝试使用e4x过滤它。我的e4x声明如下:

model.config.source.fees..fee.(@min<amount).@amount

我的xml看起来很喜欢这个:

<flex>
  <fees>
    <fee type="credit" min="0.00" max="200.00" amount="6.00"/>
    <fee type="credit" min="200.01" max="370.00" amount="10.00"/>
  </fees>
</flex>

运行e4x语句时,收到错误消息: 错误#1065:未定义变量@min。

但是,如果我将我的语句更改为model.config.source.fees..fee。@min,它将返回所有min属性值的xmllist,因此min定义,至少在该语句中。为什么原始声明不起作用?

1 个答案:

答案 0 :(得分:4)

当您使用@min<amount时,它要求所有费用节点都定义了min属性。它适用于您的示例x​​ml,但可能您在其他测试数据中缺少@min

但是,如果您使用以下格式:

model.config.source.fees..fee.(parseFloat(attribute('min')) < amount).@amount

它将处理所有节点,无论属性是否存在。