Фильтр Flex 4 E4X по атрибутам имеет неопределенную переменную - PullRequest
1 голос
/ 24 августа 2010

У меня есть 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, он вернет xmllist всех значений атрибута min, поэтомуmin определяется, по крайней мере, в этом утверждении.Почему оригинальное утверждение не работает?

1 Ответ

4 голосов
/ 24 августа 2010

Когда вы используете @min<amount, требуется, чтобы у всех узлов оплаты был определен атрибут min. Это работает для вашего примера xml, но, возможно, вы пропустили @min в других ваших данных испытаний.

Однако, если вы используете этот формат:

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

Он будет обрабатывать все узлы независимо от того, есть ли атрибут или нет.

...