Книга: Технология XSLT
Упрощенные преобразования
Разделы на этой странице:
Упрощенные преобразования
Многие простые преобразования состоят из единственного правила, которое обрабатывает корневой узел входящего документа. Общий вид такого рода преобразований показан в следующем листинге.
Листинг 4.2. Простое преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<result>
<!-- Шаблон -->
</result>
</xsl:template>
</xsl:stylesheet>
XSLT позволяет упрощать запись таких преобразований, опуская элементы xsl:stylesheet
и xsl:template
и оставляя только шаблон, создающий выходящий документ.
Корневой элемент упрощенной записи должен содержать атрибут xsl:version
, указывающий версию языка XSLT, использованного в шаблоне. Как правило, этот элемент также содержит объявление пространства имен XSLT, хотя оно может быть определено и в другом месте.
Пример
Преобразование, приведенное в листинге 4.2, можно переписать в упрощенном виде следующим образом.
Листинг 4.3. Упрощённая запись преобразования
<result
xsl:version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Шаблон -->
</result >
Приведем еще один простой пример упрощенной записи преобразования, генерирующего простейшую HTML-страницу.
Листинг 4.4. Упрощённая запись преобразования XML-документа в HTML
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<head>
<title>
<xsl:value-of select="page/name"/>
</title>
</head>
<body>
<xsl:value-of select="page/content"/>
</body>
</html>
Следующий листинг приводит полную версию этого же преобразования.
Листинг 4.5. Полная запись преобразования XML-документа в HTML
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>
<xsl:value-of select="page/name"/>
</title>
</head>
<body>
<xsl:value-of select="page/content"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
- Глава 4 Структура преобразования
- 2.7 Преобразования типов
- Модификаторы спецификации преобразования, используемые в функции printf( )
- 2.16. Явные и неявные преобразования
- А6.5. Арифметические преобразования
- Преобразования типов при присваивании
- Преобразования снаружи
- Конфигурация зоны для обратного преобразования
- Опции iptables для осуществления NAT-преобразования
- Пример: явное связывание функци и преобразования файлов
- A6.2. Целочисленные преобразования
- Объединение документа и преобразования