2010-03-26 55 views
15

我在OSX Snow Leopard(10.6.2)上我可以安裝任何我需要的東西。我最好喜歡Python或Java解決方案。我在Google上搜索過,並發現了很多關於編寫自己的程序的信息,但這只是一個快速而骯髒的實驗,所以我不想花大量時間編寫一堆代碼來做到這一點,我相信別人已經做到了。我需要一個簡單的命令行程序來使用XSL樣式錶轉換XML

這是題外話,不要用這個問題作爲你的建議請求的主題的一個例子,它不是。我很抱歉,但是我4年前問的這一天我的Google-Foo讓我失望了!

回答

21

你試過 'xsltproc的'?它可能已經安裝。

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

+0

你是正確的OSX雪豹10.6.2已經有此安裝,因此它的選中標記! – 2010-03-27 19:26:38

+3

'xsltproc stylesheet file'輸出到標準輸出。真棒。 – npdoty 2011-10-14 03:11:26

+1

不幸的是'xsltproc'不能用於XSLT 2.0,據我所知。 – stiemannkj1 2014-05-21 18:53:54

4

如果我認爲正確的,你要提供一個樣式表和XML文檔,然後的Xalan-J有一個命令行功能,你可以用它來做到這一點:

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

可與被調用:

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

你見過XMLStarlet(一個XML命令行工具集)嗎?它做了很多與XML有關的查詢轉換,特別是:

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 

更多文檔here

14

我建議Saxon,這可以從像這樣的命令行運行:

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

添加-o參數以創建輸出文件。 'Java的罐子 -o:' – 2014-02-13 09:10:23

+1

真棒,'saxon.jar'用XSLT 2.0作品! – stiemannkj1 2014-05-21 18:54:42

0

我已經使用撒克遜6.5多年的命令行轉換。 (Java,XSLT 1)

如果本機解決方案不可用,

0

看到this question與com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform另一種解決方案。但我注意到與xalan處理相比,命名空間有些不可思議。注意行爲可能不是標準。

另外你知道,內部的java類不好依賴。

相關問題