Да. Но это история грустная .
Вы можете связать файл XML с файлом XSLT-1.0, чтобы создать желаемый результат на стороне браузера со следующими Инструкция:
<?xml-stylesheet type="text/xsl" href="transform.xslt"?>
Это передало бы нагрузку по компиляции HTML клиенту, который должен был собрать HTML самостоятельно, на стороне клиента. Сегодня это все еще работает в браузере.
Преимущество этого подхода состоит в том, что вы можете изменять данные (XML файл), не меняя алгоритм их представления (HTML, созданный XSLT , стилизованный под CSS). Очень эффективен и легко настраивается, поскольку XSLT может определять различные правила (шаблоны) для обработки разных значений или наборов данных без перезагрузки XSLT.
Теоретически, XML может динамически обновляться через AJAX / JavaScript, чтобы изменить HTML. И это возможно, но не лучшим образом, потому что вам нужно вручную вызвать XSLT-процессор браузера, чтобы обновить веб-сайт с JavaScript. Не существует собственного способа сделать это без использования JS.
Другая «проблема» этого подхода - создание HTML5 <!DOCTYPE html>
в начале файла HTML5. В текущих браузерах для этого требуется взлом. Вы должны (ab) использовать функциональность xsl:output
очень специфическим c способом:
<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" doctype-system="" doctype-public="" media-type="text/html"/>
Только тогда вывод преобразования XML + XSLT будет распознан как разметка HTML5.
Причина, по которой я представил этот пост как печальные новости , заключается в том, что весь сценарий мог бы быть решен гораздо лучше, если бы
- в нем была бы поддержка XSLT-3.0. браузеры вместо поддержки только устаревшего XSLT-1.0
- могли бы лучше обрабатывать HTML5 DOCTYPE
- HTML5 вместо этого будет X HTML5
- URL-адрес будет передан как параметр XSLT изначально. В лучшем случае, когда все параметры с разделителями
&
разделены
Вместо того, чтобы упростить этот подход для разработчиков, произошло обратное, и комбинация XML + XSLT была дополнительно ограничена по «соображениям безопасности» в основных браузерах - что вызывает у многих проблемы.