výstup generovaný uvnitř instrukce xsl:result-document
se zapisuje do samostatného souboru
jméno souboru se určuje v atributu href
v atributu href
je možné používat AVT
Příklad 12. katalog-soubory.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="html" encoding="utf-8"/> <!-- Do hlavního souboru se uloží úvodní stránka s obsahem --> <xsl:template match="/"> <xsl:result-document href="katalog.html"> <html> <head> <title>Katalog <xsl:value-of select="katalog/info/firma"/></title> </head> <body> <h1>Katalog <xsl:value-of select="katalog/info/firma"/></h1> <!-- Vygenerování tabulky s obsahem --> <table border="1"> <tr> <th>Název</th> <th>Cena</th> </tr> <xsl:for-each select="katalog/polozka"> <tr> <td> <a href="{generate-id()}.html"> <xsl:value-of select="nazev"/> </a> </td> <td> <xsl:value-of select="cena"/> </td> </tr> </xsl:for-each> </table> <!-- Zpracování všech položek pomocí dalších šablon --> <xsl:apply-templates select="katalog/polozka"/> </body> </html> </xsl:result-document> </xsl:template> <!-- Každá položka se uloží do samostatného souboru --> <xsl:template match="polozka"> <xsl:result-document href="{generate-id()}.html"> <html> <head> <title><xsl:value-of select="nazev"/></title> </head> <body> <xsl:apply-templates/> <p align="center"><a href="katalog.html">Zpět</a></p> </body> </html> </xsl:result-document> </xsl:template> <xsl:template match="nazev"> <h2><xsl:apply-templates/></h2> </xsl:template> <xsl:template match="kategorie"> <em><xsl:apply-templates/></em> </xsl:template> <xsl:template match="cena"> <strong> - <xsl:apply-templates/> Kč</strong> </xsl:template> <xsl:template match="popis"> <ul> <xsl:for-each-group select="node()" group-starting-with="br"> <li> <xsl:apply-templates select="current-group()"/> </li> </xsl:for-each-group> </ul> </xsl:template> <xsl:template match="b"> <font color="red"><xsl:apply-templates/></font> </xsl:template> </xsl:stylesheet>