Gern stehe ich zur fachlichen Unterstützung in XML-Technologien, C#.NET, VisualBasic.NET und Java zur Verfügung. Sprechen Sie mich einfach an: Mail oder ☎ 0151 . 750 360 61


XSL-Übersicht / xsl:text

xsl:text

xsl:text

xsl:text fügt einen Textnode im Transformations-Output ein. Dieser kann auch in Whitespaces bestehen.

Auf dieser Seite:

Bei vielen Transformationen, z.B. von XML nach HTML oder von XML nach PDF, werden gewünschte Whitespaces nicht in das Ergebnis übernommen. Dadurch fehlt häufig ein Leerzeichen. Mit <xsl:text> </xsl:text> wird das Leerzeichen eingefügt.

Möchten Sie ein Komma als Trenner, so können Sie das leicht mit xsl:text erreichen.


<xsl:template match="/">
    <Ergebnis>
      <xsl:for-each select="/Orte/Ort">
        <xsl:value-of select="name"/>
        <xsl:if test="position() != last()">
          <xsl:text>, </xsl:text>
        </xsl:if>
      </xsl:for-each>
    </Ergebnis>
</xsl:template>

Das Ergebnis sieht dann so aus:


<Ergebnis>Neustadt, Darmstadt, Kapstadt</Ergebnis>

Dasselbe Resultat kriegen Sie einfacher auch mit hin:


<xsl:value-of 
     select="string-join(/Orte/Ort/name, ', ')"/>

Arbeiten mit @disable-output-escaping

Interessant ist ab XSL 2.0 die Möglichkeit, mit dem Attribut @disable-output-escaping zu arbeiten, analog für .


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">    
    <xsl:template match="/">
        <ergebnis>
            <xsl:text disable-output-escaping="yes">&lt;Info&gt;</xsl:text>
            <xsl:for-each select="1 to 5">
                <xsl:value-of disable-output-escaping="yes" 
                    select="concat('&lt;!--', . ,'--&gt;')"/>    
            </xsl:for-each>            
        </ergebnis>
    </xsl:template>
</xsl:stylesheet>

wg / 25. Mai 2019



Fragen? Anmerkungen? Tipps?

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_text.html