Книга: Технология 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>

Оглавление книги


Генерация: 1.469. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз