Книга: XSLT

Элемент

Элемент <xsl:fallback>

При помощи элемента XSLT 1.0 <xsl:fallback> можно указать, что следует делать в случае отсутствия элемента расширения. Этот элемент заключается в элемент расширения и используется в случае его недоступности.

У элемента <xsl:fallback> нет атрибутов, он содержит тело шаблона.

В следующем примере я создам элемент <xsl:fallback> внутри элемента <redirect:write> из предыдущего примера. В случае отсутствия элемента <redirect:write> элемент <xsl:fallback> прекратит обработку и выдаст сообщение:

<xsl:stylesheet
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 version="1.0"
 xmlns:lxslt="http://xml.apache.org/xslt"
 xmlns:redirect="org.apache.xalan.lib.Redirect"
 extension-element-prefixes="redirect">
 <lxslt:component prefix="redirect" elements="write open close" functions="">
  <lxslt:script src="org.apache.xalan.lib.Redirect"/>
 </lxslt:component>
 <xsl:output method="xml"/>
 <xsl:template match="/">
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="PLANETS">
  <redirect:write select="@file">
   <PLANETS>
    <xsl:apply-templates/>
   </PLANETS>
   <xsl:fallback>
    <xsl:message terminate="yes">
     <xsl:text>Could not create multiple output documents.</xsl:text>
    </xsl:message>
   </xsl:fallback>
  </redirect:write>
 </xsl:template>
 <xsl:template match="@*|node()">
  <xsl:copy>
   <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
 </xsl:template>
</xsl:stylesheet>

На этом мы заканчиваем введение в работу с данными в документах XML. В следующей главе мы разберем эту тему и узнаем, как изменять содержимое документа и создавать новые элементы, атрибуты и инструкции обработки.

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


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