#xml #xslt
#xml #xslt
Вопрос:
Мне уже некоторое время было интересно. Не могли бы вы создать сборку веб-сайта с использованием XML и XSLT? На самом деле я знаю, что вы можете стилизовать XML-страницы с помощью XSLT, который похож на CSS. Я видел несколько сайтов с расширением .xml в URL, но, на мой взгляд, это больше похоже на Mod_Rewrite, а не на фактический файл .XML. Итак, кто-нибудь может это подтвердить. Возможно ли это? Или невозможно создать веб-страницы на основе XML, как вы делали бы с HTML?
Ответ №1:
Да, конечно, вы можете это сделать. Многие люди так и делают.
Чтобы немного расширить, есть три этапа, на которых вы можете применить XSLT: во время публикации (в этом случае вы публикуете HTML на своем сайте, и ваши пользователи никогда не узнают, что когда-то это был XML); во время доставки страницы на сервер и во время доставки страницы в клиентском браузере. Относительно немногие люди используют клиентский XSLT, потому что он только недавно стал доступен в каждом браузере (и даже сейчас он часто недоступен в мобильных браузерах).
Ответ №2:
Конечно, используйте XML-данные и шаблоны Velocity для создания страницы.
Я предпочитаю Velocity, потому что шаблон выглядит как конечный продукт; не так с XSL-T.
Комментарии:
1. Хм, интересно. И я всегда думал, что с XML мало что можно сделать, но я только что узнал кое-что новое для себя.
2. На самом деле вы можете использовать небольшое подмножество XSLT, называемое «упрощенные таблицы стилей», точно так же, как вы бы написали простой шаблон Velocity. Но очень немногие люди ограничиваются этим подмножеством, потому что полное использование правил шаблона XSLT дает вам гораздо больше возможностей и гибкости.
3. Проблема не в правилах или мощности. Преимущество Velocity в том, что шаблон выглядит точно так же, как то, что вы хотите создать. Разработчики пользовательского интерфейса вряд ли знают, как работает XSL-T, но они знают, как выглядит HTML-страница. Это расширяет аудиторию, которая может работать с созданием динамического контента.
Ответ №3:
Обратите внимание, что вы также можете стилизовать .xml с помощью css. Однако, поскольку стиль по умолчанию отсутствует, вы должны четко указывать атрибут отображения css для каждого тега элемента. Вы также можете использовать контент, созданный css, для добавления текста и, например, отображения <sometag>text</sometag>
в виде sometag: text
Однако заставить семантику ссылок работать в разных браузерах — это небольшая проблема:
link {text-decoration: underline; color: blue; link: attr(href)}
например, будет работать в некоторых, но не во всех браузерах, чтобы сделать <link href=URL>
работает как интерактивная ссылка. (Возможно, решение на javascript работает более переносимо. )
Но преобразование xslt в html в браузере с помощью <?xml-stylesheet >
директивы, похоже, работает во всех современных браузерах без проблем и может сделать намного больше, чем один css.
Несколько примеров здесь.