XSL-Übersicht / xsl:message

xsl:message

xsl:message

xsl:message bietet sich beim Debuggen oder zum bedingungsgesteuerten Abbruch der Transformation an.

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 .

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 / 5. April 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/xsl_message.html