Мне нужна простая программа командной строки для преобразования XML с помощью таблицы стилей XSL

Я на OSX Snow Leopard (10.6.2) Я могу установить все, что мне нужно. Я предпочел бы как Python или Java-решение. Я искал в Google и нашел много информации о написании своей собственной программы для этого, но это просто быстрый и грязный эксперимент, поэтому я не хочу вкладывать много времени на написание кучи кода для этого, Я уверен, что кто-то еще это сделал.

Это не по теме сейчас, не используйте этот вопрос в качестве примера того, почему ваш запрос запроса находится по теме, это не так. Прошу прощения, но мой Google-Foo терпел неудачу в тот день, когда я спросил это 4 года назад!

Ответы

Ответ 2

Я бы рекомендовал Saxon, который можно запустить из командной строки следующим образом:

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

Ответ 3

Используйте lxml. Он очень прост в использовании и очень быстро. Он может работать с XPath и включает XSLT-трансформатор.

Ответ 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

Ответ 6

Вы видели 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

Дополнительная документация здесь.

Ответ 7

Я использовал Saxon 6.5 в течение многих лет для трансформаций командной строки. (Java, XSLT 1)

Отличный откат, если собственное решение недоступно.

Ответ 8

см. этот вопрос для другого решения с com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform. Но я заметил некоторые странности с пространствами имен по сравнению с обработкой xalan. Помните, что поведение может быть нестандартным.

Также вы знаете, что внутренние классы java нехорошо полагаться.