1

我有一些 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 。为什么原始声明不起作用?

4

1 回答 1

4

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

但是,如果您使用这种格式:

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

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

于 2010-08-24T15:49:53.980 回答