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 に答える