Верно
Что-то, вероятно, заменит XSLT однажды, так как это немного громоздко для изучения и использования. Тем не менее, в настоящее время нет доступного языка шаблонов / преобразований, который был бы настолько гибким и «чистым» в своей реализации.
XSL-T может использоваться для нескольких различных целей:
- Вы можете «создавать» контент в формате HTML из данных, используя шаблон
- Вы можете конвертировать из одного формата XML в другой
- Вы можете манипулировать XML в другом формате, возможно, показать подмножество
По сути, все это одно и то же - преобразование одного файла данных XML в другой. Теперь давайте посмотрим на некоторые другие инструменты, которые мы могли бы использовать вместо XSLT.
Если бы мы хотели манипулировать содержимым, скажем, страницы XHTML, мы могли бы использовать регулярное выражение, но регулярное выражение беспорядочно для структурных вещей. Он отлично подходит для манипулирования строками, но я бы не стал его использовать для создания оглавления для чего-либо или для представления в другом макете.
Следующим является ASP.Net. Мы помещаем наш макет в нашу страницу asp и вставляем некоторый код для динамических частей. Другой альтернативой является отказ от части макета и генерация всего, скажем, базы данных и использования C # для создания желаемого результата.
Проблема с первым подходом состоит в том, что неуклюже переходить от описательных данных к реальному контенту. Если у вас есть какой-либо файл данных, содержащий телефонные номера, которые вы хотите представить с заголовками для каждой буквы, укажите общее количество записей и т. Д., Вам нужно будет иметь часть макета в файле макета, а некоторые - в сгенерированном коде. , Другой вариант - использовать какую-то форму веб-сетки, я считаю, что она довольно грязная, и внезапно вам нужно узнать, как работает чертова сетка, когда все, что вам нужно было сделать, это вывести какой-то конкретный html с учетом данных.
Быть полностью динамичным, конечно, вариант, но это также довольно неуклюже. Даже в лучшем случае, когда вы используете что-то вроде LINQ, вам придется смешивать программный код с выводом довольно уродливо. Также нет хорошего способа правильно обработать неструктурированный рекурсивный контент в стиле документа, как это обычно бывает в html.
С помощью XSLT вы можете просто создать шаблон для определенного тега, либо как есть, так и в контексте его родителя, чтобы он отображался по-другому, например, если он парентетен чем-то другим.
Довольно длинный бессмысленный ответ, но да, я думаю, что в описательном языке шаблонов есть большая ценность, и XSLT - лучший и самый стандартизированный из всех, что мы получили.