Ze stylu jsou před zpracováním vypuštěny všechny textové uzly, které obsahují pouze bílé znaky. To se nám v některých případech nemusí hodit.
Příklad 4.9. Odstranění bílých znaků – ws1.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="/"> <html> <body> <p> <strong> <em>Ahoj</em> </strong> </p> <p> Výstup do několika řádek zalamování lze tímto způsobem ovlivnit jen v uzlech, které obahují nějaké tisknutelné znaky.</p> </body> </html> </xsl:template> </xsl:stylesheet>
V tomto stylu jsou automaticky odstraněny konce řádek za počátečními elementy, protože mezi nimi jsou jen bílé znaky. Na výstupu tak dostaneme:
<html>
<body>
<p><strong><em>Ahoj</em></strong></p>
<p>
Výstup do několika řádek
zalamování lze tímto způsobem ovlivnit
jen v uzlech, které obahují nějaké tisknutelné
znaky.
</p>
</body>
</html>Bílé znaky jsou ve stylu zachovávány jen uvnitř elementu xsl:text. Do tohoto elementu můžeme
například vložit znak pro konec řádky.
Příklad 4.10. Zachování bílých znaků – ws2.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="/"> <html> <body> <p><xsl:text>
</xsl:text> <strong><xsl:text>
</xsl:text> <em>Ahoj</em><xsl:text>
</xsl:text> </strong><xsl:text>
</xsl:text> </p> <p> Výstup do několika řádek zalamování lze tímto způsobem ovlivnit jen v uzlech, které obahují nějaké tisknutelné znaky.</p> </body> </html> </xsl:template> </xsl:stylesheet>
Obdržíme pak korektní výstup s konci řádek tam, kde je očekáváme.
<html>
<body>
<p>
<strong>
<em>Ahoj</em>
</strong>
</p>
<p>
Výstup do několika řádek
zalamování lze tímto způsobem ovlivnit
jen v uzlech, které obsahují nějaké tisknutelné
znaky.
</p>
</body>
</html>Pokud potřebujeme do výstupního dokumentu ručně vkládat konce řádek, můžeme opět využít „trik“ s interními textovými entitami.
Příklad 4.11. Zachování bílých znaků elegantněji – ws3.xsl
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY LF "<xsl:text>
</xsl:text>"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="/"> <html> <body> <p>&LF; <strong>&LF; <em>Ahoj</em>&LF; </strong>&LF; </p> <p> Výstup do několika řádek zalamování lze tímto způsobem ovlivnit jen v uzlech, které obahujé nějaké tisknutelné znaky.</p> </body> </html> </xsl:template> </xsl:stylesheet>
Ve vstupním dokumentu se textové elementy, které obsahují pouze bílé znaky, automaticky neruší.
Odstraní se pouze ty přebytečné textové uzly s bílými
znaky, které jako svého rodiče mají element uvedený v seznamu
elementů u instrukce <xsl:strip-space>. Ve stromu dokumentu
naopak zůstanou uzly, které mají jako svého rodiče element uvedený
v instrukci <xsl:preserve-space>. Seznam elementů
se zadává pomocí atributu elements
a můžeme v něm použít mezerami oddělený seznam atributů, případně
hvězdičku pro všechny elementy.
Vyšší váhu než předchozí dvě instrukce má nastavení atributu
xml:space na hodnotu preserve u elementu nebo u některého z jeho
předků.
V praxi se odstranění nepotřebných textových uzlů projeví v kratším výstupním dokumentu – implicitní textovou šablonou nejsou na vstup kopírovány přebytečné mezery.