Mindgap: Automatisches Löschen von Code nach Knotentest?

Beitrag lesen

Hallo,

würde gerne mal wissen, ob der XSLT Parser in der Lage ist, XSLT Code nach dem durchführen eines Knotentests, wieder aus dem Stylesheet zu extrahieren.

Hintergrund:

Dieser Codeauszug generiert eine "Kasten" in dem verschiedene Artikel vorkommen (oder auch nicht):

<fieldset style="border: 1px solid #999999; width: 100%">
                        <legend style= "-10px"><h2>Hot Topics</h2></legend>
                        <xsl:apply-templates select="Datei" mode="HT" />
                      </fieldset>

Hier werden alle XML Eingangsdokumente aufgerufen:

<xsl:template match="Datei" mode="HT">
      <xsl:apply-templates select="document(@Name)/Article" mode="ht"/>
  </xsl:template>

Und an dieser Stelle wird geprüft, ob das Element <testelement> einen Inhalt mit dem Wert "HT" besitzt. Wenn ja, wird ein weiteres Template ausgeführt, wenn nicht, passiert noch nichts.

<xsl:template match="Article" mode="ht" >
      xsl:choose
        <xsl:when test="testelement[. = 'HT']">
          <xsl:call-template name="ht"/>
        </xsl:when>
      </xsl:choose>
  </xsl:template>

Frage: Gibt es eine Möglichkeit, durch das xsl:otherwise Element, bei einer negativen Abfrage des Elementes <testelement>,  den Parser anzuweisen, den Code

<fieldset style="border: 1px solid #999999; width: 100%">
                        <legend style= "-10px"><h2>Hot Topics</h2></legend>
                        <xsl:apply-templates select="Datei" mode="HT" />
                      </fieldset>

wieder aus dem Template zu löschen, oder auch einfach nur zu ignorieren, damit kein leerer Container mit der Überschrift Hot Topics generiert wird?

Danke und Gruß,
Michael