2011-12-21 2 views
1

С помощью этой линии можно распечатать значения, которые больше, чем 1999Выберите элементы со значениями меньше некоторого числа

<xsl:for-each select="//ad[regyear >= 1999]" > 

Но я не могу показаться, чтобы узнать, как распечатать значения с 1998 года и вниз.

+0

I второй вопрос Антони, добавив: «Когда вы пробовали это, что случилось неожиданно?» – LarsH

ответ

2

Bigger или равен 1999:

//ad[regyear &gt;= 1999] 

меньше или равен 1998:

//ad[regyear &lt;= 1998] 
2

@Kirill дал главный ответ, но в XSLT 2.0 вы можете также использовать lt или le:

//ad[regyear lt 1999] 

который ma y более читабельны. В некоторых случаях экзистенциальные операторы сравнения, такие как &lt;, могут иметь неожиданные волосатые последствия, и lt избегает этих.

1

Для удобства чтения я рекомендую не использовать &lt;.

Вместо:

//ad[regyear &lt;= 1998] 

Я использую:

//ad[not(regyear > 1998)] 

Никогда не избежать > символ в выражении XPath - Я не знаю о случае, когда это необходимо.

Наконец, так как Ларс правильно упоминает, в XPath 2.0 (XSLT 2.0) используются операторы сравнения lt, gt, le, ge и ne значения и не использует общие операторы сравнения для сравнения между двумя значениями.

+0

Конечно, 'regyear < = 1998' не всегда эквивалентен' not (regyear> 1998) '... в частности, когда контекстный узел не имеет дочернего элемента с именем regyear. Это одно из тех «волосатых последствий» операторов экзистенциального сравнения. Вместо этого вы можете написать '1998> = regyear', что было бы эквивалентно' regyear < = 1998'. – LarsH

+0

P.S. +1 хороший ответ. :-) – LarsH

+0

Относительно «Я не знаю случая, когда это [экранирование> в выражении XPath] необходимо» - согласен. Спектр говорит> «для совместимости должен быть экранирован с помощью« > »или символьной ссылки, когда он появляется в строке']]> 'в контенте, когда эта строка не помещает конец раздела CDATA». В то время как ']]>' может возникать в выражении XPath, избегания экранирования можно было бы избежать, если предшествовать> пробелу, которое обычно будет выполняться в любом случае для удобства чтения. – LarsH

Смежные вопросы