Ruby/XSLT¶ ↑
About¶ ↑
Ruby/XSLT is a simple XSLT class based on libxml <xmlsoft.org/> and libxslt <xmlsoft.org/XSLT/>
Licence¶ ↑
Copyright © 2003-2012 Gregoire Lejeune <gregoire dot lejeune at free dot fr>
Ruby/XSLT is freely distributable according to the terms of the GNU General Public License (see the file ‘COPYING’).
This program is distributed without any warranty. See the file ‘COPYING’ for details.
INSTALLATION¶ ↑
sudo gem install ruby-xslt
or
ruby extconf.rb # see CONFIGURATION for more options make make test make doc sudo make install
CONFIGURATION¶ ↑
--help display this help and exit --with-xslt-lib=PATH --with-xslt-include=PATH --with-xslt-dir=PATH specify the directory name for the libxslt include files and/or library --disable-error-handler disables the new error handler --disable-exslt disables libexslt support <http://exslt.org/>
EXAMPLES¶ ↑
Simple example¶ ↑
require 'xml/xslt' xslt = XML::XSLT.new() xslt.xml = "text.xml" xslt.xsl = "test.xsl" out = xslt.serve() print out;
REXML support¶ ↑
require 'rexml/document' require 'xml/xslt' xslt = XML::XSLT.new() xslt.xml = REXML::Document.new File.read( "test.xml" ) xslt.xsl = REXML::Document.new File.read( "test.xsl" ) out = xslt.serve() print out;
XML::Smart support¶ ↑
require 'xml/smart' require 'xml/xslt' xslt = XML::XSLT.new() xslt.xml = XML::Smart.open( "test.xml" ) xslt.xsl = XML::Smart.open( "test.xsl" ) out = xslt.serve() print out;
Parameters support¶ ↑
require "xml/xslt" xslt = XML::XSLT.new() xslt.xsl = "parameter.xsl" xslt.xml = "test.xml" xslt.parameters = { "p1" => "the first parameter ...", "p2" => "'and the second one!'" } xslt.save("test1.html") xslt.parameters = { "p1" => "Ruby...", "p2" => "'...is cool !'" } xslt.save("test2.html")
External functions support¶ ↑
require "xml/xslt" xslt = XML::XSLT.new() xslt.xsl = "functions.xsl" xslt.xml = "test.xml" XML::XSLT.registerExtFunc("http://test.none", "round-trip") do |arg| arg end XML::XSLT.registerExtFunc("http://test.none", "type") do |arg| arg.class.to_s end print xslt.serve
Error handling¶ ↑
XML::XSLT.registerErrorHandler { |string| puts string } xslt = XML::XSLT.new xslt.xml = "not xml"
This fragment would print:
Entity: line 1: parser error : Start Tag expected, '<' not found not xml ^