Это потому, что в верхней части XSLT автор определил limit в качестве параметра
<xsl:param name="limit"/>
Но несколько строк вниз, а затем определяет его как переменную
<xsl:variable name="limit">
Возможно, у него был "глючный" процессор xslt, который позволял переопределять переменные, но на самом деле он не должен быть действительным.
Я попытался переименовать переменную в newlimit , но трудно понять, когда он впоследствии ссылается на limit , является ли это параметром или переменной, на которую он ссылается (я не мог на самом деле заставить его выводить полезный HTML).
Возможно, вам лучше искать что-то еще, чтобы удовлетворить ваши потребности. Здесь могут быть похожие вопросы, если вы ищете. Например, возможно, это соответствует вашим потребностям
XSLT - Использование подстроки с копией для сохранения внутренних тегов HTML
Я уверен, что могут быть и другие, если вы посмотрите. Если нет, не стесняйтесь задавать новый вопрос, указав свой исходный HTML-код и ожидаемый результат, чтобы было ясно, каковы ваши требования.