Čo to je
XSL - eXtensible Stylesheet Language. XSL je jazyk popisujúci transformáciu XML súborov a dát do ľubovoľného iného formátu, najčastejšie do iného XML/HTML formátu (zmena štruktúry súboru). Súbory s koncovkou .xsl/.xslt sú transformačné šablóny. V nich si definujete štruktúru a pravidlá výstupu (nového XML súboru). XSL môže byť vo verzií 1.0, 2.0 a 3.0 .
Pomocou transformácie viete aj napríklad docieliť transformáciu .csv súboru na .xml.
msxsl.exe
Priamo vo Windowse máte možnosť využiť msxsl.exe , čo je aplikácia určená pre transformáciu XSL 1.0. Môžete ju spustiť pomocou .bat / .cmd (vytvoríte si textový súbor napr. spusti.bat). Do súboru si vpíšete hodnoty nižšie a uložíte. Následne pre transformáciu spustíte súbor spusti.bat.
msxsl.exe -o "ciel.xml" "zdroj.xml" "sablona.xslt"
Príklad
Vstupný XML súbor (zdroj.xml)
<?xml version="1.0" encoding="utf-8"?>
<orders>
<order>
<head ordnumber="789">
<email>havri@havri.eu</email>
<number>Order123</number>
<text>Objednávka z e-shopu</text>
<date>2021-12-22</date>
</head>
<items>
<item>
<name>Položka 1</name>
<quantity>2</quantity>
<unit>ks</unit>
<vat>20</vat>
<price>9.99</price>
</item>
<item>
<name>Položka 2</name>
<quantity>1</quantity>
<unit>ks</unit>
<vat>20</vat>
<price>4.99</price>
</item>
<item>
<name>Kniha </name>
<quantity>5</quantity>
<unit>ks</unit>
<vat>10</vat>
<price>14.99</price>
</item>
</items>
</order>
</orders>
Transformačná XSL šablóna (sablona.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="xml" indent="yes" encoding="utf-8" />
<!-- Telo výstupu -->
<xsl:template match="orders">
<objednavky>
<xsl:for-each select="order">
<objednavka>
<hlavicka>
<email><xsl:value-of select="head/email"/></email>
<datum><xsl:value-of select="head/date"/></datum>
<cisloObj><xsl:value-of select="@ordnumber"/></cisloObj>
<cislo><xsl:value-of select="head/number"/></cislo>
</hlavicka>
<polozky>
<xsl:for-each select="items/item">
<polozka>
<text><xsl:value-of select="name"/></text>
<mnozstvo><xsl:value-of select="quantity"/></mnozstvo>
</polozka>
</xsl:for-each>
</polozky>
</objednavka>
</xsl:for-each>
</objednavky>
</xsl:template>
</xsl:stylesheet>
Výstupný XML súbor (ciel.xml)
<?xml version="1.0" encoding="utf-8"?>
<objednavky>
<objednavka>
<hlavicka>
<email>havri@havri.eu</email>
<datum>2021-12-22</datum>
<cisloObj>789</cisloObj>
<cislo>Order123</cislo>
</hlavicka>
<polozky>
<polozka>
<text>Položka 1</text>
<mnozstvo>2</mnozstvo>
</polozka>
<polozka>
<text>Položka 2</text>
<mnozstvo>1</mnozstvo>
</polozka>
<polozka>
<text>Kniha </text>
<mnozstvo>5</mnozstvo>
</polozka>
</polozky>
</objednavka>
</objednavky>