XML | XML-Schema | XPath | XSL-T | XSL-FO | XQuery | XProc | SVG |
XSL-T / Die XSLT - Struktur / xsl:message
![]() |
![]() |
➪ xsl:message bietet sich beim Debuggen oder zum bedingungsgesteuerten Abbruch der Transformation an.
Siehe xsl:message.
Nehmen Sie beispielsweise den folgenden Aufruf in XSLT, der sämtliche Ort-Nodes durchläuft und bei dem Childnode name eine xsl:message startet,
<xsl:template match="/">
<Ergebnis>
<xsl:for-each select="/Orte/Ort">
<xsl:if test="name='Kapstadt'">
<xsl:message
select="concat('Hallo hier ist ', name)"/>
</xsl:if>
</xsl:for-each>
</Ergebnis>
</xsl:template>
so erscheint in einem Nachrichten- bzw. im Ausgabefenster die Mitteilung:
Hallo Hier ist Kapstadt
Völlig dasselbe Resultat erhalten Sie auch als Child-Text-Node, ohne das select-Attribut, etwa so:
<xsl:message>
Hallo hier ist <xsl:value-of select="name"/>
</xsl:message>
Wer mag, und wenn der XSLT-Prozessor das mitmacht, kann auch beides verwenden, das select-Attribut und den Aufruf der Childnodes:
<xsl:message select="'Hallo hier ist '">
<xsl:value-of select="name"/>
</xsl:message>
Von besonderem Interesse ist ein zweites Attribut terminate, dessen Default-Wert auf no steht. Setzen Sie dieses auf true,
<xsl:if test="name='Neustadt'">
<xsl:message terminate="yes"
select="concat('Hallo hier ist ', name, ' ')">
Bis hierher und nicht weiter!
</xsl:message>
</xsl:if>
... so erfolgt neben einer Ausgabe der xsl:message:
Hallo hier ist Neustadt Bis hierher und nicht weiter!
... ein radikaler Abbruch der Transformation; die Fehlerbeschreibung kann beispielsweise so aussehen:
Fehlerlevel: fatal
Beschreibung: XTMM9000: Processing terminated by xsl:message
Verwendung findet xsl:message beispielsweise in xsl:try/xsl:catch.
Tipp: Zur Fehlersuche setze ich xsl:message gern in Verbindung mit xsl:comment ein. Während xsl:message bestimmte Ereignisse an einem separaten Ausgabefenster auflistet, schreibt xsl:comment die jeweiligen Ergebnisse in das Output-Dokument. Hier ist die Zuordnung der Fehler zur betreffenden Stelle im XSLT-Quelltext einfacher, besonders wenn dieser einige Zehntausend Codezeilen umfasst.
wg / 10. August 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
ᐅ xsl:mode
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de