XSLT
Использование шаблонов
<xsl:template
name="name"
match="pattern"
mode="mode"
priority="number">
<!--
Content:(<xsl:param>*,template)
-->
</xsl:template>
Выборка узлов и применение шаблонов:
<xsl:apply-templates select="expression" mode="name">
<!--
Content:(xsl:sort|xsl:with-param)*
-->
</xsl:apply-templates>
Именнованые шаблоны
<xsl:template name="tmpName"
<!--
Content:(<xsl:param>*,template)
-->
</xsl:template>
<xsl:call-template name="tmpName">
<!-- Content:xsl:with-param* -->
</xsl:call-template>
Создание узлов-элементов
<xsl:element
name="name"
namespace="URI"
use-attribute-sets="namelist">
<!-- Content:template -->
</xsl:element>
Создание узлов-атрибутов
<xsl:attribute
name="name"
namespace="URI">
<!-- Content:template -->
</xsl:attribute>
Создание наборов атрибутов:
<xsl:attribute-set
name="name">
<!-- Content:xsl:attribute* -->
</xsl:attribute-set>
Создание текстовых узлов
Создание комментариев и инструкций обработки
<xsl:comment>
<!-- Content:template -->
</xsl:comment>
<xsl:processing-instruction
name="process-name">
<!-- Content:template -->
</xsl:processing-instruction>
Копирование узлов
<xsl:copy-of select="expression"/>
<xsl:copy
use-attribute-sets="name-list">
<!-- Content:template -->
</xsl:copy>
Управляющие конструкции
Условная обработка
<xsl:if test="expression">
<!-- Content: template -->
</xsl:if>
Оператор выбора
<xsl:choose>
<xsl:when test="boolean-expression">
<!-- Content: template -->
</xsl:when>
<xsl:when test="boolean-expression">
<!-- Content: template -->
</xsl:when>
<xsl:otherwise>
<!-- Content:template -->
</xsl:otherwise>
</xsl:choose>
Циклическая обработка
<xsl:for-each select="expression">
<!-- Content:(xsl:sort*,template) -->
</xsl:for-each>
Рекурсивные правила
<xsl:template match="myElement"
...
<xsl:apply-templates
select="myElement" />
...
</xsl:template>
Сортировка значений
<xsl:sort
select="expression"
lang="language-code"
data-type="text|number|qname"
order="ascending|descending"
case-order="upper-first|lower-first"/>
Лабораторная работа 5.1
Использование операторов XSLT создания узлов
Упражнение 1: Cоздание XML-документа
• Откройте папку с лабораторными работами
• Создайте пустой текстовый файл с именем lab-5-1.xml
• Откройте файл lab-5-1.xml с помощью Notepad++
• Установите кодировку документа UTF-8
• Наберите следующий текст:
<?xml version="1.0" encoding="UTF-8"?>
<lab5_1>
<element name="computer" value="Intel Core Duo" />
<element name="monitor" value="19 in." />
<element name="printer" value="LBP2900" />
</lab5_1>
• Проверьте XML на правильность синтаксиса
Упражнение 2: Cоздание XSL-документа
• Создайте пустой текстовый файл с именем lab-5-1.xsl
• Откройте файл lab-5-1.xsl с помощью Notepad++
• Установите кодировку документа UTF-8
• Наберите следующий текст:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://_.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
encoding="UTF-8" />
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet>
• Проверьте XML на правильность синтаксиса
Лабораторная работа 5.2
XSLT преобразование с управляющими конструкциями
Упражнение 1: Cоздание XML-документа
• Откройте папку с лабораторными работами
• Создайте пустой текстовый файл с именем lab-5-2.xml
• Откройте файл lab-5-2.xml с помощью Notepad++
• Установите кодировку документа UTF-8
• Наберите следующий текст:
<?xml version="1.0" encoding="UTF-8"?>
<lab5_2>
<element name="computer" value="Intel Core Duo" />
<element name="monitor" value="19 in." />
<element name="printer" value="LBP2900" />
<element name="keyboard" value="104 keys" />
<element name="mouse" value="optical" />
</lab5_2>
• Проверьте XML на правильность синтаксиса
Упражнение 2: Cоздание XSL-документа
• Создайте пустой текстовый файл с именем lab-5-2.xsl
• Откройте файл lab-5-2.xsl с помощью Notepad++
• Установите кодировку документа UTF-8
• Наберите следующий текст:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://_.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
encoding="UTF-8" />
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet>
• Проверьте XML на правильность синтаксиса