在Ruby中执行XSL转换的最佳方法(XSLT 2.0)

在Ruby中执行XSL转换的最佳和最有效的方法是什么? 我尝试了Nokogiri,但无论我尝试了什么,它总会导致:

compilation error: element stylesheet 

样式表在我的XML编辑器中完美运行。

我在Linux上使用Ruby 1.9.3。


在探索之后,我发现Nokogiri不支持XSLT 2.0:

Nokogiri使用libxml2,它只支持XPath 1.0 / XSLT1.0

我的样式表是使用XSLT 2.0语法编写的。 我更新了这个问题的标题以反映这一点。 我希望Nokogiri以更有意义的方式回应它。

为什么要执行XSL转换? 只是好奇。

我正在开发一个向其他网站提交XML Feed的网站。 每个Feed都有不同的格式,但Feed的数据来源是相同的。 因此,我决定使用从数据库提供的XSL样式表,而不是为每个Feed编写自定义代码。 这样我就可以通过上传新的样式表来创建新的Feed。

可以通过saxon-xslt gem在JRuby中使用XSLT 2.0。 我不认为通过其他Ruby实现可以做到这一点。 当然,MRI ruby​​将依赖于尚未实现XPath 2.0的libxml。 有关更多信息,请参阅此主题 。