我在OSX Snow Leopard(10.6.2)上我可以安裝任何我需要的東西。我最好喜歡Python或Java解決方案。我在Google上搜索過,並發現了很多關於編寫自己的程序的信息,但這只是一個快速而骯髒的實驗,所以我不想花大量時間編寫一堆代碼來做到這一點,我相信別人已經做到了。我需要一個簡單的命令行程序來使用XSL樣式錶轉換XML
這是題外話,不要用這個問題作爲你的建議請求的主題的一個例子,它不是。我很抱歉,但是我4年前問的這一天我的Google-Foo讓我失望了!
我在OSX Snow Leopard(10.6.2)上我可以安裝任何我需要的東西。我最好喜歡Python或Java解決方案。我在Google上搜索過,並發現了很多關於編寫自己的程序的信息,但這只是一個快速而骯髒的實驗,所以我不想花大量時間編寫一堆代碼來做到這一點,我相信別人已經做到了。我需要一個簡單的命令行程序來使用XSL樣式錶轉換XML
這是題外話,不要用這個問題作爲你的建議請求的主題的一個例子,它不是。我很抱歉,但是我4年前問的這一天我的Google-Foo讓我失望了!
你試過 'xsltproc的'?它可能已經安裝。
使用lxml
。它非常易於使用,速度非常快。它可以使用XPath幷包含一個XSLT transformer。
如果我認爲正確的,你要提供一個樣式表和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
你見過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。
我建議Saxon,這可以從像這樣的命令行運行:
java -jar /path/to/saxon.jar xmlfile xslfile
添加-o參數以創建輸出文件。 'Java的罐子
真棒,'saxon.jar'用XSLT 2.0作品! – stiemannkj1 2014-05-21 18:54:42
我已經使用撒克遜6.5多年的命令行轉換。 (Java,XSLT 1)
如果本機解決方案不可用,
看到this question與com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform另一種解決方案。但我注意到與xalan處理相比,命名空間有些不可思議。注意行爲可能不是標準。
另外你知道,內部的java類不好依賴。
你是正確的OSX雪豹10.6.2已經有此安裝,因此它的選中標記! – 2010-03-27 19:26:38
'xsltproc stylesheet file'輸出到標準輸出。真棒。 – npdoty 2011-10-14 03:11:26
不幸的是'xsltproc'不能用於XSLT 2.0,據我所知。 – stiemannkj1 2014-05-21 18:53:54