Eine kürzere Umwandlung, die einige praktische Techniken für diese Art von Dingen veranschaulicht:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:strip-space elements="*"/>
<xsl:variable name="newline"><xsl:text>
</xsl:text></xsl:variable>
<xsl:template match="text()">
<xsl:value-of select="concat(local-name(..),' ',normalize-space(.),$newline)"/>
</xsl:template>
</xsl:stylesheet>
- strip-space bedeutet, dass alle Knoten, die nur aus Leerzeichen bestehen, ignoriert werden.
- Sie können Funktionen wie local-name mit Parametern versehen.
- Bei der Erzeugung von Textausgaben ist eine Variable wie $newline oft sehr nützlich.
Optional können durch Hinzufügen der folgenden Transformation alle nicht blattförmigen Textknoten ignoriert werden:
<xsl:template match="*[*]"><xsl:apply-templates/></xsl:template>