2011-12-16 20 views
13

Desidero eseguire una trasformazione XSLT 2.0 utilizzando le esecuzioni della riga di comando. Ho sentito che potrei usare la libreria Saxon con un comando di shell come java -jar sax.jar -input foo.xml -xsl foo.xsl -output bar.xml. Qualcuno sa esattamente come posso raggiungere questo obiettivo?Trasformazione XSLT 2.0 tramite shell linux

A proposito, non sono limitato a Java. Qualsiasi altra soluzione di shell va bene.

+3

essere consapevoli che un parser SAX non esegue XSLT. Il parser Sax analizza l'XML in un flusso e genera eventi. Saxon è un processore XSLT. Il più delle volte un processore XSLT non esegue lo streaming. Saxon (nella sua versione commerciale) ha funzionalità di streaming con le ultime istruzioni fornite da XSLT 3.0. –

+0

grazie per il chiarimento della corretta denominazione – Alp

risposta

11

La documentazione di Saxon è online: http://www.saxonica.com/documentation/using-xsl/commandline.xml. Quindi hai bisogno di java -jar saxon9he.jar -xsl:foo.xsl -s:foo.xml -o:bar.xml.

+3

grazie mille. ho anche trovato questo: http://manpages.ubuntu.com/manpages/oneiric/man1/saxonb-xslt.1.html è troppo buono o cosa preferiresti? – Alp

+1

La versione di Saxon fornita con la distribuzione di Ubuntu è probabilmente piuttosto vecchia. Probabilmente è meglio scaricare la versione più recente (anche se sei un principiante probabilmente non noterai molta differenza). –

+0

download home edition da http://saxon.sourceforge.net – akostadinov

2

Ho appena scritto this bash script per utilizzare le classi com.sun.org.apache.xalan.internal.xsltc.cmdline per la trasformazione di XML. Funziona con openjdk bene. Non è una soluzione per casi d'uso di produzione, ma utile per il debug.

P.S. ha preso l'idea da this blog

SOLUZIONE 2: utilizzare xalan command line