Упрощенные преобразования

Упрощенные преобразования

Многие простые преобразования состоят из единственного правила, которое обрабатывает корневой узел входящего документа. Общий вид такого рода преобразований показан в следующем листинге.

Листинг 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>