Potrzebuję prostego programu wiersza poleceń do przekształcania XML za pomocą arkusza stylów XSL [zamknięty]

Jestem na OSX Snow Leopard (10.6.2) mogę zainstalować wszystko, czego potrzebuję. Wolałbym rozwiązanie Pythona lub Javy. Szukałem w Google i znalazłem wiele informacji na temat pisania własnego programu, aby to zrobić, ale jest to tylko szybki i brudny eksperyment, więc nie chcę inwestować dużo czasu na pisanie kodu, aby to zrobić, jestem pewien, że ktoś inny już to zrobił.

to jest teraz off-topic, nie używaj tego pytania jako przykładu, Dlaczego Twój Prośba o rekomendacje jest na temat, nie jest. Przepraszam, ale moje Google-Foo zawodziło mnie w dniu, w którym zapytałem o to 4 lata temu!

Author: feeling abused and harassed, 2010-03-26

8 answers

Próbowałeś ' xsltproc '? Prawdopodobnie jest już zainstalowany.

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

 22
Author: nbeyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-27 05:23:42

Polecam Saxon, który można uruchomić z linii poleceń tak:

java -jar /path/to/saxon.jar xmlfile xslfile
 14
Author: Will McCutchen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-26 21:02:38

Użycie lxml. Jest bardzo łatwy w użyciu i bardzo szybki. Może współpracować z XPath i zawiera transformator XSLT.

 4
Author: nosklo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-26 20:58:30

Jeśli poprawnie zakładam, że chcesz podać arkusz stylów i dokument XML, to Xalan-J ma funkcję wiersza poleceń, której możesz użyć do tego:

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

Które można wywołać za pomocą:

java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT foo.out
 4
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-26 20:59:52
 3
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-26 20:57:48

Czy widziałeś XMLStarlet (zestaw narzędzi wiersza poleceń XML) ? Wykonuje wiele transformacji zapytań związanych z XML, a w szczególności:

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

Dalsza dokumentacja Tutaj .

 3
Author: Brian Agnew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-26 21:01:42

Używam Saxon 6.5 od lat do transformacji wiersza poleceń. (Java, XSLT 1)

Doskonałe rozwiązanie awaryjne, jeśli natywne rozwiązanie nie jest dostępne.

 0
Author: Thorbjørn Ravn Andersen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-29 22:46:30

Zobacz to pytanie dla innego rozwiązania z com. sun. org. apache. Xalan. internal.xsltc.cmdline. Transform. ale zauważyłem pewne dziwactwa z przestrzeniami nazw w porównaniu do przetwarzania xalan. Należy pamiętać, zachowanie może być niestandardowe.

Również wiesz, wewnętrzne klasy java nie są dobre, aby polegać na.

 0
Author: akostadinov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:28