Pomocí funkce document()
můžeme v jednom stylu pracovat s více soubory. Dokonce lze
jedním voláním funkce načíst několik souborů najednou.
Příklad 11.1. Dokument se seznamem souborů k načtení –
numberfiles.xml
<files> <file>katalog.xml</file> <file>zamestnanci.xml</file> <file>parametry2.xsl</file> </files>
Příklad 11.2. Styl, který očísluje všechny elementy ze zadaných dokumentů –
document.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> <xsl:apply-templates select="document(//file)/node()"/> </body> </html> </xsl:template> <xsl:template match="*"> <xsl:number count="*" level="any" format="1. "/> <xsl:value-of select="name(.)"/><br/> <xsl:apply-templates/> </xsl:template> <xsl:template match="text()"/> </xsl:stylesheet>
Funkci document()
můžeme
použít v libovolném XPath výrazu. Uzly, které funkce vybere, se
nestávají součástí stromu vstupního dokumentu. Pokud na ně chceme
aplikovat šablony, můžeme všechny vybrané uzly postupně zpracovat
pomocí instrukce <xsl:for-each>
nebo pomocí
<apply-templates>
.