Выберите элементы со значениями, меньшими чем некоторое число - PullRequest
1 голос
/ 21 декабря 2011

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

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

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

Ответы [ 3 ]

2 голосов
/ 21 декабря 2011

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

//ad[regyear lt 1999]

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

2 голосов
/ 21 декабря 2011

больше или равно 1999:

//ad[regyear &gt;= 1999]

Меньше или равно 1998:

//ad[regyear &lt;= 1998]
1 голос
/ 21 декабря 2011

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

Вместо :

//ad[regyear &lt;= 1998] 

Я использую :

//ad[not(regyear > 1998)] 

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...