XSLTProc - parancssoros XSLT processzor
A probléma: Adott környezetben kellene olyan parancssoros alkalmazás, ami XSL tranformációt hajt végre.
Gyakran kell olyan környezetben dolgoznom, ahol nem élhetünk azzal a feltételezéssel, hogy egy adott parancssoros segédeszköz rendelkezésünkre áll. Programok telepítése ilyenkor sokszor szóba sem jöhet. Amennyiben a célkörnyezet rendelkezik Java futtatókörnyezettel, úgy az alábbi egysoros szösszenet lehetővé teszi XSL transzformációk platformfüggetlen végrehajtását.
A megoldás se nem gyönyörű, se nem exotikus, viszont rövid, hatékony és platformfüggetlen. Amennyiben rugalmasabb, jobban
paraméterezhető megoldásra van szükség, úgy célszerű linux/unix környezetben az xsltproc
parancs használata, ami a GNOME
libxslt
-re épül. Kicsi-puha környezetben az msxsl.exe
az az ingyenesen letölthető komponens, ami lehetővé teszi az MSXML 4.0
XSLT motorjának parancssoros meghívását.
package hu.lithium.utils;
import java.io.File;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class XSLTProc {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println("Usage: java -jar xsltproc.jar <xsltfile> <xmlfile>");
System.exit(1);
}
Transformer trans = TransformerFactory.newInstance().newTransformer(new StreamSource(new File(args[0])));
trans.transform(new StreamSource(new File(args[1])), new StreamResult(System.out));
}
}