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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам