Я поддерживаю веб-сайт, который генерирует контент XML, который затем переводится на веб-страницы с использованием XSLT. Меня попросили создать новую таблицу стилей, которая преобразует выходные данные «архивной» страницы в Atom для синдикации. Проблема, с которой я сталкиваюсь, состоит в том, что на странице архива содержится довольно большое количество элементов - 142 и считаются - и в ленте никогда не должно быть более тридцати элементов.
В настоящее время вывод со страницы архива выглядит примерно так:
<archive>
<year>
<month>
<day>
<day>
...
</month>
...
</year>
...
</archive>
Теги year
и month
используются преобразованием HTML, но они совершенно не важны для канала Atom. Я надеялся, что использование функции position()
с осью-потомком сработает (//day[position()>last()-30]
), но это выбирает последние 30 дней каждого месяца , что совсем не то, что мне нужно. : -)
Есть ли способ сделать это с помощью XSLT или XPath? Необходимость изменить генератор XML для добавления, скажем, атрибута feed="true"
к последним тридцати дням, кажется довольно неприятным препятствием.