Ответ 1
Вы пробовали "xsltproc"? Возможно, он уже установлен.
Я на OSX Snow Leopard (10.6.2) Я могу установить все, что мне нужно. Я предпочел бы как Python или Java-решение. Я искал в Google и нашел много информации о написании своей собственной программы для этого, но это просто быстрый и грязный эксперимент, поэтому я не хочу вкладывать много времени на написание кучи кода для этого, Я уверен, что кто-то еще это сделал.
Это не по теме сейчас, не используйте этот вопрос в качестве примера того, почему ваш запрос запроса находится по теме, это не так. Прошу прощения, но мой Google-Foo терпел неудачу в тот день, когда я спросил это 4 года назад!
Вы пробовали "xsltproc"? Возможно, он уже установлен.
Я бы рекомендовал Saxon, который можно запустить из командной строки следующим образом:
java -jar /path/to/saxon.jar xmlfile xslfile
Используйте lxml
. Он очень прост в использовании и очень быстро. Он может работать с XPath и включает XSLT-трансформатор.
Если я правильно предполагаю, что вы хотите предоставить таблицу стилей и 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
Дополнительная документация здесь.
Я использовал Saxon 6.5 в течение многих лет для трансформаций командной строки. (Java, XSLT 1)
Отличный откат, если собственное решение недоступно.
см. этот вопрос для другого решения с com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform. Но я заметил некоторые странности с пространствами имен по сравнению с обработкой xalan. Помните, что поведение может быть нестандартным.
Также вы знаете, что внутренние классы java нехорошо полагаться.