2010-03-26 11 views
15

Sono su OSX Snow Leopard (10.6.2) Posso installare tutto ciò che mi serve. Preferirei preferibilmente una soluzione Python o Java. Ho cercato su Google e ho trovato molte informazioni sulla scrittura del mio programma per farlo, ma questo è solo un esperimento veloce e sporco, quindi non voglio investire molto tempo scrivendo un po 'di codice per fare questo , Sono sicuro che qualcun altro lo ha già fatto.Ho bisogno di un semplice programma a riga di comando per trasformare XML usando un foglio di stile XSL

Questo è off-topic ora, non utilizzare questa domanda come esempio del motivo per cui la tua richiesta di raccomandazioni è in argomento, non lo è. Mi scuso, ma il mio Google-Foo mi ha deluso il giorno in cui l'ho chiesto a 4 anni fa!

risposta

21

Hai provato 'xsltproc'? Probabilmente è già installato.

http://xmlsoft.org/XSLT/xsltproc2.html

+0

hai ragione OSX Snow Leopard 10.6.2 ha già installato questo, quindi ottiene il segno di spunta! –

+3

'xsltproc stylesheet file' restituisce lo stdout. Eccezionale. – npdoty

+1

Sfortunatamente 'xsltproc' non funziona con XSLT 2.0 per quanto ne so. – stiemannkj1

4

Se presumo correttamente che si desidera fornire un foglio di stile e di un documento XML poi Xalan-J ha una caratteristica linea di comando è possibile utilizzare per fare questo:

http://xml.apache.org/xalan-j/commandline.html

che può essere invocato con:

java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT foo.out 
3

Avete visto XMLStarlet (un set di strumenti da riga di comando XML)? Fa un sacco di interrogazione trasformazione XML-correlati, ed in particolare:

xml tr --help 
XMLStarlet Toolkit: Transform XML document(s) using XSLT 
Usage: xml tr [<options>] <xsl-file> {-p|-s <name>=<value>} [ <xml-file-or-uri> ... ] 
where 
    <xsl-file>  - main XSLT stylesheet for transformation 
    <xml-file>  - input XML document file name (stdin is used if missing) 
    <name>=<value> - name and value of the parameter passed to XSLT processor 
    -p    - parameter is XPATH expression ("'string'" to quote string) 
    -s    - parameter is a string literal 

Ulteriore documentazione here.

14

mi consiglia Saxon, che può essere eseguito da linea di comando in questo modo:

java -jar /path/to/saxon.jar xmlfile xslfile 
+1

Aggiungere l'argomento -o per creare un file di output. 'java -jar -o:' –

+1

Impressionante, 'saxon.jar' funziona con XSLT 2.0! – stiemannkj1

0

ho usato Sassone 6,5 per anni per le trasformazioni della riga di comando. (Java, XSLT 1)

Un fallback eccellente se una soluzione nativa non è disponibile.

0

vedere this question per un'altra soluzione con com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform. Ma ho notato alcune stranezze con lo spazio dei nomi rispetto all'elaborazione di xalan. Essere consapevoli del comportamento potrebbe essere non standard.

Inoltre, sapete, le classi Java interne non sono adatte a fare affidamento.

Problemi correlati