XSLT, как обрабатывать только первые элементы X? - PullRequest
2 голосов
/ 02 августа 2010

Я пытаюсь использовать XSL для преобразования ленты новостей во фрагмент HTML для вставки в веб-страницу.

Лента новостей состоит из нескольких сотен статей, поэтому я хочу включить только последние 10 заголовков ... xsl ниже, я думал, что смогу получить счетчик и выйти из цикла после желаемогоколичество итераций.Однако после некоторого прочтения кажется, что xsl не предназначен для такого использования.

Каков «лучший» способ получить желаемый результат в xsl?

Большое спасибо за любые предложения.

edit: Кажется, не позволяет публиковать фрагменты XML.Но шаблон, которому я следую, был снят отсюда: http://www.rgagnon.com/javadetails/java-0407.html

Ответы [ 2 ]

3 голосов
/ 02 августа 2010
<xsl:for-each select="howto/topic[position() &lt;= 10]">
0 голосов
/ 02 августа 2010

Я рекомендую вам решить ее с помощью запроса XPath, а не с помощью XSLT.XPath имеет две функции: одна count (nodeset) , а другая - position () .С помощью комбинации этих функций вы можете получить интересные результаты.Например:

//news[position()<11]

возвращает первые 10 элементов

или

//news[position()>count(//news)-10]

возвращает последние 10 элементов

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