parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Пока нашёл такое решение

baibaratsky 13.05.2005 14:17

Перед тем, как напустить на текст темплейты, проверяем, есть ли в нём непарный cut. Если есть, то обрабатываем соответствующим образом.
<xsl:choose>
  <xsl:when test="not(string(content/cut))">
    <xsl:apply-templates select="content/cut" mode="null"/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:apply-templates select="content"/>
  </xsl:otherwise>
</xsl:choose>
Теперь сама обработка cut'а:
<xsl:template match="cut">
  <xsl:call-template name="cut"/>
</xsl:template>
<xsl:template match="cut" mode="null">
  <xsl:apply-templates select="preceding-sibling::node()"/>
  <xsl:call-template name="cut"/>
</xsl:template>

<!-- Common part of template "cut" -->
<xsl:template name="cut">
  <a>
    <xsl:attribute name="href"><!-- Here I generate a link --></xsl:attribute>
    <xsl:choose>
      <xsl:when test="string(@text)">
        <xsl:value-of select="@text"/>
      </xsl:when>
      <xsl:otherwise>читать дальше&#133;</xsl:otherwise>
    </xsl:choose>
  </a>
</xsl:template>