xslt 2.0 и Ruby в OS X - PullRequest
3 голосов
/ 20 мая 2009

Я пытаюсь проанализировать документ XML на листе XSLT 2.0. Однако мне говорят, что библиотеки в OSX 10.5.x поддерживают только операции XSLT 1.0. Когда я смотрю на xsltproc, я получаю это:

hmasing $ xsltproc --version Использование libxml 20616, libxslt 10112 и libexslt 810 xsltproc был скомпилирован для libxml 20616, libxslt 10112 и libexslt 810 libxslt 10112 был скомпилирован с libxml 20616 libexslt 810 был скомпилирован для libxml 20616

Есть ли у кого-нибудь краткое руководство по установке XSLT 2.0, гемы ruby ​​xslt для работы с этими библиотеками и какая-нибудь хорошая фу, чтобы пройти мой путь? Пожалуйста, предположите, что я полный идиот в любых инструкциях. Любая помощь с благодарностью!

  • Hans

1 Ответ

5 голосов
/ 17 июля 2009

К сожалению, Saxon - единственная игра в городе с бесплатной реализацией XSLT 2.0. Сам Саксон великолепен, но это только Java или .NET, со всеми вытекающими отсюда последствиями.

Вызов его из командной строки или с помощью системного вызова каждый раз будет стоить запуск JVM, так что вы, вероятно, не хотите этого делать.

Некоторые вещи, которые вы можете попробовать:

1) Вы уверены, что вам нужен XSLT 2.0? Если вы не используете функциональность, которая не в 1.0, ваш XSLT может быть 1.0-совместимым. Тогда вы можете использовать xsltproc. Если вам нужен EXSLT, xsltproc имеет некоторую поддержку для этого.

2) Если вам определенно нужна версия 2.0, то вы захотите создать какую-нибудь оболочку для саксонца. Многое зависит от того, в какой среде вы хотите использовать это, так что это может быть веб-сервис или что-то в этом роде. Для проекта, над которым я работаю, мы используем небольшую программу прослушивания TCP, которая оборачивает saxon. Вы можете увидеть это здесь: http://idp.atlantides.org/svn/idp/idp.contenttool/trunk/epiduke_saxon/ Это хорошо работает для пакетных преобразований командной строки и очень быстро.

...