Лучший способ выполнить XSL-преобразование в Ruby (XSLT 2.0) - PullRequest
7 голосов
/ 21 декабря 2010

Каков наилучший и наиболее эффективный способ выполнения XSL-преобразования в Ruby? Я пробовал Nokogiri, но независимо от того, что я пробовал, это всегда приводит к:

compilation error: element stylesheet

Таблица стилей отлично работает в моем редакторе XML.

Я использую Ruby 1.9.3 в Linux.


После осмотра я обнаружил, что Nokogiri не поддерживает XSLT 2.0:

Nokogiri использует libxml2, который поддерживает только XPath 1.0 / XSLT1.0

Моя таблица стилей была написана с использованием синтаксиса XSLT 2.0. Я обновил заголовок этого вопроса, чтобы отразить это. Я бы хотел, чтобы Нокогири отреагировал на это более осмысленно.

Почему вы хотите выполнить XSL-преобразование? Просто любопытно.

Я работаю над сайтом, который отправляет XML-каналы на другие сайты. Каждый канал имеет свой формат, но источник данных для канала тот же. Поэтому вместо того, чтобы писать собственный код для каждого канала, я решил использовать таблицы стилей XSL, предоставляемые из базы данных. Таким образом, я могу создавать новые каналы, просто загрузив новую таблицу стилей.

1 Ответ

5 голосов
/ 06 января 2015

Возможно использование XSLT 2.0 в JRuby через saxon-xslt gem .Я не думаю, что это возможно сделать с помощью других реализаций Ruby.Конечно, MRI ruby ​​будет зависеть от libxml, который еще не внедрил XPath 2.0.См. эту тему для получения дополнительной информации.

...