Отладка XSLT в Chrome
У меня проблемы с переводом XSL в Chrome. Мне было интересно, есть ли какие-нибудь инструменты, которые позволили бы мне пройтись по таблице стилей, чтобы увидеть, в чем проблема.
2 ответа
- Используйте тесты узлов, чтобы проверить результаты запросов XPath.
- Используйте функцию документа для проверки путей к файлам
- Используйте консоль JavaScript для запуска запросов XPath к источнику данных XML
- Используйте встроенные шаблоны вместо
xsl:include
устранить проблемы пути - Используйте комментарии, чтобы устранить
xsl:include
операторы, ссылающиеся на ошибочные шаблоны - Используйте инструкции обработки, чтобы комментировать блоки кода, которые имеют комментарии XML
- Используйте встроенную таблицу стилей для обхода ограничений политики одного и того же происхождения
- использование
input
теги для печатиxsl:variable
ценности. - Используйте шаблоны значений атрибутов для печати неизвестных значений
- Использование упрощенных таблиц стилей и параметризованного XPath для модуляции шаблонов
- Используйте Opera в качестве перекрестной ссылки, так как она показывает номера строк в своих сообщениях об ошибках XSLT.
В Linux есть инструмент под названием xsltproc , который принимает XSL и XML и выводит преобразование.
Он также показывает контекст вокруг ошибок.
Я нашел это наиболее полезным, когда я разрабатываю, так как я могу проверить результат своих изменений без необходимости иметь запущенный и работающий сервер разработки. Это просто работает.
Однако я заметил, что результаты преобразования могут отличаться, например, от Chrome. Я не знаю, почему это так, было ли мое преобразование несоответствующим, если Chrome не соответствует требованиям, или xsltproc не соответствует требованиям.
РЕДАКТИРОВАТЬ Мой комментарий о различиях между Chrome и xsltproc, отображающих преобразование немного по-разному, вероятно, недействителен .
- Я несколько изменил схему XML, и с тех пор xsltproc правильно генерировал теги (на основе имени типа типов в схеме), а Chrome — нет.
- Я делал жесткую перезагрузку, чтобы избежать повторного использования кеша Chrome.
- Я мог сказать, что Chrome использует новый xsl, так как были включены другие изменения, которые отображались.
- По какой-то причине в Chrome не работали только тесты, связанные со схемой.
- С тех пор я обнаружил, что теперь он волшебным образом работает, без изменений в xsl, просто в другой день.
Итак, я предполагаю, что какая-то часть xsl каким-то образом кэшировалась (возможно, только часть схемы - здесь полностью угадывается) ... поэтому некоторая отладка в Chrome была бы очень приятной.