Xslt что это чем открыть

Обновлено: 05.07.2024

Прежде чем изучать XSLT, мы должны сначала понять XSL, что означает E X X- LX. Это похоже на XML, как CSS на HTML.

Нужен для XSL

В случае HTML-документа предварительно определены теги, такие как таблица, div и span; и браузер знает, как добавить стиль к ним и отобразить те, которые используют стили CSS. Но в случае документов XML теги не предопределены. Чтобы понять и оформить XML-документ, Консорциум World Wide Web (W3C) разработал XSL, который может выступать в качестве языка таблиц стилей на основе XML. Документ XSL определяет, как браузер должен отображать документ XML.

Что такое XSLT

XSLT, Преобразования расширяемого языка таблиц стилей, предоставляет возможность автоматического преобразования данных XML из одного формата в другой.

Как работает XSLT

Таблица стилей XSLT используется для определения правил преобразования, которые будут применяться к целевому документу XML. Таблица стилей XSLT написана в формате XML. XSLT Processor берет таблицу стилей XSLT и применяет правила преобразования к целевому XML-документу, а затем генерирует отформатированный документ в форме XML, HTML или текстового формата. Этот форматированный документ затем используется средством форматирования XSLT для генерации фактического вывода, который должен отображаться конечному пользователю.

Рабочий процесс XSLT

преимущества

Независимо от программирования. Преобразования записываются в отдельный файл xsl, который снова является документом XML.

Вывод можно изменить, просто изменив преобразования в файле xsl. Нет необходимости менять код. Таким образом, веб-дизайнеры могут редактировать таблицу стилей и быстро увидеть изменения в выводе.

Независимо от программирования. Преобразования записываются в отдельный файл xsl, который снова является документом XML.

Вывод можно изменить, просто изменив преобразования в файле xsl. Нет необходимости менять код. Таким образом, веб-дизайнеры могут редактировать таблицу стилей и быстро увидеть изменения в выводе.

Предположим, у нас есть следующий пример XML-файла student.xml, который необходимо преобразовать в хорошо отформатированный HTML-документ.

students.xml

Нам нужно определить документ таблицы стилей XSLT для вышеуказанного XML-документа, чтобы он соответствовал следующим критериям:

Столбцы должны иметь следующие заголовки: № броска, Имя, Фамилия, Ник, Марки

Таблица должна содержать информацию о студентах соответственно.

Столбцы должны иметь следующие заголовки: № броска, Имя, Фамилия, Ник, Марки

Таблица должна содержать информацию о студентах соответственно.

Шаг 1. Создайте документ XSLT

Создайте документ XSLT, отвечающий указанным выше требованиям, назовите его как Students.xsl и сохраните его в том же месте, где находится student.xml.

students.xsl

Шаг 2. Свяжите документ XSLT с документом XML

Обновите файл student.xml следующим тегом xml-stylesheet. Установите значение href для Students.xsl

Шаг 3. Просмотр XML-документа в Internet Explorer

students.xml

Выход

Форматированный вывод

<xsl: template> определяет способ повторного использования шаблонов для генерации желаемого вывода для узлов определенного типа / контекста.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: template> .

Атрибуты

Имя элемента, к которому должен быть применен шаблон.

Шаблон, который обозначает элемент (ы), к которому должен быть применен шаблон.

Приоритетный номер шаблона. Соответствующий шаблон с низким приоритетом не рассматривается перед шаблоном с высоким приоритетом.

Позволяет элементу обрабатываться несколько раз, каждый раз получая разные результаты.

Имя элемента, к которому должен быть применен шаблон.

Шаблон, который обозначает элемент (ы), к которому должен быть применен шаблон.

Приоритетный номер шаблона. Соответствующий шаблон с низким приоритетом не рассматривается перед шаблоном с высоким приоритетом.

Позволяет элементу обрабатываться несколько раз, каждый раз получая разные результаты.

элементы

Родительские элементы

xsl: таблица стилей, xsl: transform

Дочерние элементы

xsl: apply-import, xsl: apply-templates, xsl: атрибут, xsl: шаблон вызова, xsl: выбор, xsl: комментарий, xsl: копирование, xsl: copy-of, xsl: элемент, xsl: отступление, xsl: for-each, xsl: if, xsl: message, xsl: номер, xsl: param, xsl: инструкция обработки, xsl: текст, xsl: value-of, xsl: переменная, выходные элементы

Родительские элементы

xsl: таблица стилей, xsl: transform

Дочерние элементы

xsl: apply-import, xsl: apply-templates, xsl: атрибут, xsl: шаблон вызова, xsl: выбор, xsl: комментарий, xsl: копирование, xsl: copy-of, xsl: элемент, xsl: отступление, xsl: for-each, xsl: if, xsl: message, xsl: номер, xsl: param, xsl: инструкция обработки, xsl: текст, xsl: value-of, xsl: переменная, выходные элементы

Демо-пример

Это шаблонное правило имеет шаблон, который идентифицирует элементы <student> и создает выходные данные в табличном формате.

students.xml

students_imports.xsl

Выход

Форматированный вывод

Тег <xsl: value-of> помещает значение выбранного узла в соответствии с выражением XPath в виде текста.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: value-of> .

Атрибуты

Выражение XPath для оценки в текущем контексте.

Disable-outputescaping

Выражение XPath для оценки в текущем контексте.

Disable-outputescaping

элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: for-each, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template , xsl: variable, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: for-each, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template , xsl: variable, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

Демо-пример

В этом примере создается таблица элемента <student> с его атрибутом rollno и его дочерним элементом <firstname>, <lastname>, <nickname> и <marks>.

students.xml

students.xsl

Проверьте вывод

Форматированный вывод

Тег <xsl: for-each> применяет шаблон повторно для каждого узла.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: for-each>

Атрибуты

Выражение XPath для оценки в текущем контексте, чтобы определить набор узлов, подлежащих итерации.

Выражение XPath для оценки в текущем контексте, чтобы определить набор узлов, подлежащих итерации.

элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: foreach, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template, xsl: переменная, xsl: when, xsl: with-param, выходные элементы.

Дочерние элементы

xsl: apply-import, xsl: apply-templates, xsl: атрибут, xsl: шаблон вызова, xsl: выбор, xsl: комментарий, xsl: копирование, xsl: copy-of, xsl: элемент, xsl: отступление, xsl: for-each, xsl: if, xsl: message, xsl: number, xsl: инструкция обработки, xsl: sort, xsl: text, xsl: value-of, xsl: variable.

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: foreach, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template, xsl: переменная, xsl: when, xsl: with-param, выходные элементы.

<?xml version = "1.0"?> <?xml-stylesheet type = "text/xsl" href = "students.xsl"?> <class> <student rollno = "393"> <firstname>Dinkar</firstname> <lastname>Kad</lastname> <nickname>Dinkar</nickname> <marks>85</marks> </student> <student rollno = "493"> <firstname>Vaneet</firstname> <lastname>Gupta</lastname> <nickname>Vinni</nickname> <marks>95</marks> </student> <student rollno = "593"> <firstname>Jasvir</firstname> <lastname>Singh</lastname> <nickname>Jazz</nickname> <marks>90</marks> </student> </class>

students.xsl

Выход

Форматированный вывод

Тег <xsl: sort> определяет критерии сортировки на узлах.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: sort> .

Атрибуты

Ключ сортировки узла.

Язык алфавита, используемый для определения порядка сортировки.

Тип данных текста.

Порядок сортировки. По умолчанию «по возрастанию».

Дело порядка

Порядок сортировки строк по заглавным буквам. По умолчанию «верхний-первый».

Ключ сортировки узла.

Язык алфавита, используемый для определения порядка сортировки.

Тип данных текста.

Порядок сортировки. По умолчанию «по возрастанию».

Дело порядка

Порядок сортировки строк по заглавным буквам. По умолчанию «верхний-первый».

элементы

Количество вхождений неограниченный
Родительские элементы xsl: apply-templates, xsl: for-each
Дочерние элементы Никто

Демо-пример

В этом примере создается таблица элемента <student> с его атрибутом rollno и его дочерним элементом <firstname>, <lastname>, <nickname> и <marks> путем итерации по каждому студенту с сортировкой их по имени.

students.xml

students.xsl

Выход

Форматированный вывод сортировки

Тег <xsl: if> указывает условный тест на содержание узлов.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: if> .

Атрибуты

тестовое задание

Условие в данных XML для проверки.

тестовое задание

Условие в данных XML для проверки.

элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: for-each, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция обработки, xsl: шаблон, xsl: variable, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: apply-templates, xsl: атрибут, xsl: call-template, xsl: выбор, xsl: комментарий, xsl: копия, xsl: copy-of, xsl: элемент, xsl: for-each, xsl: if, xsl: инструкция обработки, xsl: текст, xsl: значение-значения, xsl: переменная, выходные элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: for-each, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция обработки, xsl: шаблон, xsl: variable, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: apply-templates, xsl: атрибут, xsl: call-template, xsl: выбор, xsl: комментарий, xsl: копия, xsl: copy-of, xsl: элемент, xsl: for-each, xsl: if, xsl: инструкция обработки, xsl: текст, xsl: значение-значения, xsl: переменная, выходные элементы

Демо-пример

В этом примере создается таблица элемента <student> с его атрибутом rollno и его дочерним элементом <firstname>, <lastname>, <nickname> и <marks> путем итерации по каждому студенту. Он проверяет отметки, чтобы быть больше 90, а затем печатает данные студента (ов).

students.xml

students.xsl

Выход

Форматированный вывод IF

Тег <xsl: choose> задает несколько условных проверок содержимого узлов вместе с элементами <xsl: else> и <xsl: when>.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: choose> .

элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: for-each, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция обработки, xsl: шаблон, xsl: variable, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: в противном случае xsl: когда

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: for-each, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция обработки, xsl: шаблон, xsl: variable, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: в противном случае xsl: когда

Демо-пример

В этом примере создается таблица элемента <student> с его атрибутом rollno и его дочерним элементом <firstname>, <lastname>, <nickname> и <marks> путем итерации по каждому студенту. Он проверяет, а затем печатает детали оценки.

students.xml

students.xsl

Выход

Форматированный Выберите вывод

Элемент тега <xsl: key> указывает именованную пару имя-значение, назначенную определенному элементу в документе XML. Этот ключ используется с функцией key () в выражениях XPath для доступа к назначенным элементам в документе XML.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: key> .

Атрибуты

Название ключа, который будет использоваться.

Шаблоны, используемые для идентификации узла, который содержит этот ключ.

использование

Выражение XPath для определения значения узлов документа xml.

Название ключа, который будет использоваться.

Шаблоны, используемые для идентификации узла, который содержит этот ключ.

использование

Выражение XPath для определения значения узлов документа xml.

элементы

Количество вхождений неограниченный
Родительские элементы XSL: таблицы стилей
Дочерние элементы Никто

Демо-пример

В этом примере создается таблица элемента <student> с его атрибутом rollno и его дочерним элементом <firstname>, <lastname>, <nickname> и <marks> путем итерации по каждому студенту. Он проверяет ключ как имя, чтобы быть одним из имени студента, а затем печатает данные студента.

students.xml

students.xsl

Выход

Форматированный ключ вывода

декларация

Ниже приводится объявление синтаксиса элемента <xsl: message> .

Атрибуты

Он указывает, должно ли преобразование завершаться при выполнении этой инструкции или нет. По умолчанию «да».

Он указывает, должно ли преобразование завершаться при выполнении этой инструкции или нет. По умолчанию «да».

элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: foreach, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template, xsl: переменная, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: apply-templates, xsl: атрибут, xsl: call-template, xsl: выбор, xsl: комментарий, xsl: копия, xsl: copy-of, xsl: элемент, xsl: for-each, xsl: if, xsl: инструкция обработки, xsl: текст, xsl: значение-значения, xsl: переменная, выходные элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: foreach, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template, xsl: переменная, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: apply-templates, xsl: атрибут, xsl: call-template, xsl: выбор, xsl: комментарий, xsl: копия, xsl: copy-of, xsl: элемент, xsl: for-each, xsl: if, xsl: инструкция обработки, xsl: текст, xsl: значение-значения, xsl: переменная, выходные элементы

Демо-пример

students.xml

students.xsl

Выход

Тег <xsl: apply-template> сигнализирует процессору XSLT найти подходящий шаблон для применения на основе типа и контекста каждого выбранного узла.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: apply-template> .

Атрибуты

Используется для обработки узлов, выбранных выражением XPath, вместо обработки всех дочерних элементов.

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

Используется для обработки узлов, выбранных выражением XPath, вместо обработки всех дочерних элементов.

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

элементы

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: foreach, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template, xsl: переменная, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: sort, xsl: with-param

Родительские элементы

xsl: attribute, xsl: comment, xsl: copy, xsl: element, xsl: fallback, xsl: foreach, xsl: if, xsl: message, xsl: иначе, xsl: param, xsl: инструкция по обработке, xsl: template, xsl: переменная, xsl: when, xsl: with-param, выходные элементы

Дочерние элементы

xsl: sort, xsl: with-param

Демо-пример

В этом примере создается список элемента <student> с его атрибутом rollno и его дочерним элементом <firstname>, <lastname>, <nickname> и <marks> путем итерации по каждому студенту.

students.xml

students.xsl

Выход

Форматированный вывод шаблона

Тег <xsl: import> импортирует содержимое одной таблицы стилей в другую. Импорт таблицы стилей имеет более высокий приоритет по сравнению с импортированной таблицей стилей.

декларация

Ниже приводится объявление синтаксиса элемента <xsl: import> .

Программы, которые поддерживают XSLT расширение файла

Ниже вы найдете указатель программ, которые можно использовать для открытия файлов XSLT, разделенных на категории 3 в соответствии с поддерживаемой системной платформой. Файлы с расширением XSLT, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.

Программы, обслуживающие файл XSLT

Как открыть файл XSLT?

Причин, по которым у вас возникают проблемы с открытием файлов XSLT в данной системе, может быть несколько. Что важно, все распространенные проблемы, связанные с файлами с расширением XSLT, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.

Шаг 1. Установите Microsoft Visual Studio программное обеспечение

Install software to open XSLT file

Проблемы с открытием и работой с файлами XSLT, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами XSLT на вашем компьютере. Наиболее очевидным решением является загрузка и установка Microsoft Visual Studio или одной из перечисленных программ: Adobe Dreamweaver, Windows Notepad, NotePad++ text editor. Выше вы найдете полный список программ, которые поддерживают XSLT файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт Microsoft Visual Studio и загрузите установщик.

Шаг 2. Проверьте версию Microsoft Visual Studio и обновите при необходимости

Update software that support file extension XSLT

Если проблемы с открытием файлов XSLT по-прежнему возникают даже после установки Microsoft Visual Studio, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия Microsoft Visual Studio. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Это может быть одной из причин, по которой XSLT файлы не совместимы с Microsoft Visual Studio. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Microsoft Visual Studio.

Шаг 3. Настройте приложение по умолчанию для открытия XSLT файлов на Microsoft Visual Studio

Если проблема не была решена на предыдущем шаге, вам следует связать XSLT файлы с последней версией Microsoft Visual Studio, установленной на вашем устройстве. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы

Associate software with XSLT file on Windows

Изменить приложение по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле XSLT и выберите « Открыть с помощью опцией».
  • Нажмите Выбрать другое приложение и затем выберите опцию Еще приложения
  • Чтобы завершить процесс, выберите Найти другое приложение на этом. и с помощью проводника выберите папку Microsoft Visual Studio. Подтвердите, Всегда использовать это приложение для открытия XSLT файлы и нажав кнопку OK .

Изменить приложение по умолчанию в Mac OS

Шаг 4. Проверьте XSLT на наличие ошибок

Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл XSLT действительным. Вероятно, файл поврежден и, следовательно, недоступен.

Check XSLT file for viruses

1. Проверьте XSLT файл на наличие вирусов или вредоносных программ.

Если XSLT действительно заражен, возможно, вредоносное ПО блокирует его открытие. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если файл XSLT действительно заражен, следуйте инструкциям ниже.

2. Убедитесь, что файл с расширением XSLT завершен и не содержит ошибок
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

Некоторые файлы требуют повышенных прав доступа для их открытия. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.

4. Проверьте, может ли ваша система обрабатывать Microsoft Visual Studio

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

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами XSL Transformation Format и обеспечить безопасность вашего устройства и операционной системы. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов XSLT.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла XSLT мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле XSLT.

Язык преобразований XSLT

XSLT (eXtensible Stylesheet Language Transformations) - расширяемый язык преобразования листов стилей.

Язык XSLT служит транслятором, с помощью которого можно свободно модифицировать исходный текст. XLST играет решающую роль в утверждении XML в качестве универсального языка хранения и передачи данных. Область применения XSLT широка - от электронной коммерции до беспроводного Web.

Фактическая сборка результирующего документа происходит, когда исходный документ и лист стилей XSLT передаются в синтаксический анализатор XSLT (XSLT-процессор).

При использовании XSLT в среде Web синтаксический анализ может происходить либо на стороне пользователя (т.е. в пользовательском браузере), либо на стороне сервера.

Анализ XSLT на стороне клиента похож на процедуру применения каскадных листов стилей. В исходный документ нужно добавить тег

Здесь transform.xsl - имя файла листа стилей XSLT.

Шаблоны

Каждый элемент XSLT начинается префиксом xsl:. Элемент xsl:stylesheet служит контейнером для листа стилей XSLT. Атрибут version="1.0" этого элемента определяет версию спецификации XSL.

Преобразования XSLT основаны на шаблонах. Шаблон определяется инструкцией xsl:template.

XSLT-процессор анализируют исходный документ и пытается найти подходящий XSL-шаблон. Если такой шаблон найден, то выполняются инструкции внутри него.

Обработка всегда начинается с шаблона, где match="/". Это значение пути адресации соответствует корневому узлу (в примере 1 это книга).

Пример 1

Исходный XML

Преобразование XSLT ( файл t01.xsl )

Михаил Булгаков

  1. инструкцией xsl:value-of. В этом случае содержание элемента используется без какой-либо дальнейшей обработки (см. пример 2);
  2. инструкцией xsl:apply-templates. В этом случае XSLT-процессор продолжает обрабатывать выбранные элементы, для которых определен шаблон (см. пример 3).

Пример 2

Исходный XML

Преобразование XSLT ( файл t02.xsl )

Мастер и Маргарита. Михаил Булгаков

Пример 3

Исходный XML

Преобразование XSLT ( файл t03.xsl )

Мастер и Маргарита. Михаил Булгаков

В качестве значений атрибутов match и select используются выражения, синтаксис которых похож на маршрут файловой системы:

ВыражениеОписание /Корневой узел .Текущий узел ..Родительский узел текущего узла fruitУзел fruit fruit/limeПодузел lime узла fruit fruit/*Все потомки узла fruit /fruitУзел fruit, являющийся прямым потомком корневого узла @tasteАтрибут taste текущего узла @*Все атрибуты текущего узла fruit@tasteАтрибут taste узла fruit fruit/lime@tasteАтрибут taste узла lime, являющегося подузлом узла fruit ..@tasteАтрибут taste родительского узла //Любое количество промежуточных узлов fruit//limeВсе узлы lime, имеющие предка fruit |Знак разделения конкретных узлов lime|grapeУзел lime и узел grape []Предикатное выражение fruit[lime]Узел fruit, имеющий потомка lime fruit[lime="fine"]Узел fruit, имеющий потомка lime, значение которого равно fine fruit[@taste]Узел fruit, имеющий атрибут taste fruit[@taste="5"]Узел fruit, имеющий атрибут taste, значение которого равно 5 count(fruit/*)Количество потомков узла fruit name()Имя текущего узла

Сравните результаты примера 4 (перечисление узлов) и примера 5 (все узлы).

Язык преобразований XSLT

XSLT (eXtensible Stylesheet Language Transformations) - расширяемый язык преобразования листов стилей.

Язык XSLT служит транслятором, с помощью которого можно свободно модифицировать исходный текст. XLST играет решающую роль в утверждении XML в качестве универсального языка хранения и передачи данных. Область применения XSLT широка - от электронной коммерции до беспроводного Web.

Фактическая сборка результирующего документа происходит, когда исходный документ и лист стилей XSLT передаются в синтаксический анализатор XSLT (XSLT-процессор).

При использовании XSLT в среде Web синтаксический анализ может происходить либо на стороне пользователя (т.е. в пользовательском браузере), либо на стороне сервера.

Анализ XSLT на стороне клиента похож на процедуру применения каскадных листов стилей. В исходный документ нужно добавить тег

Здесь transform.xsl - имя файла листа стилей XSLT.

Шаблоны

Каждый элемент XSLT начинается префиксом xsl:. Элемент xsl:stylesheet служит контейнером для листа стилей XSLT. Атрибут version="1.0" этого элемента определяет версию спецификации XSL.

Преобразования XSLT основаны на шаблонах. Шаблон определяется инструкцией xsl:template.

XSLT-процессор анализируют исходный документ и пытается найти подходящий XSL-шаблон. Если такой шаблон найден, то выполняются инструкции внутри него.

Обработка всегда начинается с шаблона, где match="/". Это значение пути адресации соответствует корневому узлу (в примере 1 это книга).

Пример 1

Исходный XML

Преобразование XSLT ( файл t01.xsl )

Михаил Булгаков

  1. инструкцией xsl:value-of. В этом случае содержание элемента используется без какой-либо дальнейшей обработки (см. пример 2);
  2. инструкцией xsl:apply-templates. В этом случае XSLT-процессор продолжает обрабатывать выбранные элементы, для которых определен шаблон (см. пример 3).

Пример 2

Исходный XML

Преобразование XSLT ( файл t02.xsl )

Мастер и Маргарита. Михаил Булгаков

Пример 3

Исходный XML

Преобразование XSLT ( файл t03.xsl )

Мастер и Маргарита. Михаил Булгаков

В качестве значений атрибутов match и select используются выражения, синтаксис которых похож на маршрут файловой системы:

ВыражениеОписание /Корневой узел .Текущий узел ..Родительский узел текущего узла fruitУзел fruit fruit/limeПодузел lime узла fruit fruit/*Все потомки узла fruit /fruitУзел fruit, являющийся прямым потомком корневого узла @tasteАтрибут taste текущего узла @*Все атрибуты текущего узла fruit@tasteАтрибут taste узла fruit fruit/lime@tasteАтрибут taste узла lime, являющегося подузлом узла fruit ..@tasteАтрибут taste родительского узла //Любое количество промежуточных узлов fruit//limeВсе узлы lime, имеющие предка fruit |Знак разделения конкретных узлов lime|grapeУзел lime и узел grape []Предикатное выражение fruit[lime]Узел fruit, имеющий потомка lime fruit[lime="fine"]Узел fruit, имеющий потомка lime, значение которого равно fine fruit[@taste]Узел fruit, имеющий атрибут taste fruit[@taste="5"]Узел fruit, имеющий атрибут taste, значение которого равно 5 count(fruit/*)Количество потомков узла fruit name()Имя текущего узла

Сравните результаты примера 4 (перечисление узлов) и примера 5 (все узлы).

Читайте также: