Я поддерживаю веб-сайт, который генерирует 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"
за последние тридцать дней, кажется довольно неприятным kludge.