pondělí 5. listopadu 2007

XSLT a výstup do více souborů

Před nedávnem psal Štěpán o tom, jak pomocí XSLT zpracovat vstup z více souborů a jí se dnes přidám s řešením opačného problému.
XSLT (Extensible Stylesheet Language Transformations) je způsob, jak pomocí XML šablony z jednoho XML dokumentu vyrobit jiný (nejčastěji taky XML) dokument. Ale co když potřebujeme ze zdojového souboru vyrobit dva a víc výsledných souborů?

XSLT 2.0
Pokud náš XSL procesor podporuje normu XSLT 2.0, máme vyhráno. Kouzelný příkaz se jmenuje xsl:result-document a atributem href se určí jméno souboru do kterého bude směřovat výstup. Více v článku Create multiple files in XSLT 2.0 na DeveloperWorks.

XSLT 1.0/1.1
Ve starší normě výstup do více souborů standardizován není, ale snad každý procesor nabízí své rozšíření, pomocí kterého toho jde dosáhnout. Nevýhodou ale je, že takový způsob není samozřejmě přenositelný mezi různými XSL procesory.

Postup pro XSL procesor Xalan-J je následující:
Do XSL šablony elementu xsl:stylesheet přidáme atributy xmlns:redirect="http://xml.apache.org/xalan/redirect" a extension-element-prefixes="redirect", čímž si zpřístupníme xalanovské rozšíření Redirect.
Potom můžeme použít element redirect:write select="jmenosouboru", který zařídí výstup do požadovaného souboru. (Viz kompletní popis rozšíření Redirect.)

Žádné komentáře:

Okomentovat