Как дебажить XSLT

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 20


Задача

Разобраться, каким образом можно дебажить XSLT.

Решение

Используя XSLT шаблонизатор, порой, не сразу удается найти файл, который отвечает за тот или иной блок на сайте.

С помощью утилиты Folder Find Text

Для дебага XSLT рекомендуем установить утилиту FolderFindText или аналогичную, с ее помощью можно рекурсивно искать необходимое сочетание символов в указанной папке, подробнее останавливаться на поиске по папке не будем. Таким образом, мы получили возможность находить необходимые файлы.

Иногда бывает так, что, по результатам поиска, подходящих файлов больше, чем 1. В таком случае можно открывать файл, находить нужное место и вставлять для HTML тега атрибут:

test="test"

После сохранения результата, можно посмотреть через инструменты разработчика, появился атрибут в теге, или нет. Если появился — отлично — это верный маркер того, что мы нашли нужное место. Теперь можно приступать к редактированию кода (подробнее на редактировании кода останавливаться не будем, так как эта тема весьма обширна и не выходит за рамки данной статьи).

С помощью вывода значения переменной

После нахождения файла, можно приступать к непосредственной отладке. Для выведения переменной можно воспользоваться следующей конструкцией, где в select необходимо указать переменную, которую хотим вывести на экран:

<p>
 <xsl:value-of select="  " />
</p>

Используя встроенный в систему режим дебага

Также, дебажить XSLT удобно с включенным режимом дебага (включить его можно в файле config.ini -> секция debug). При таком подходе система сама сообщит, в каком файле проблема. Может получиться так, что проблема появляется до передачи данных в файл, тогда необходимо последовательно проверять схему работы данного участка кода.

Результат

Как итог имеем четкое понимание того, в каком именно месте искать причину ошибки.