From: Wes Gamble Date: 2007-01-24T07:32:38+09:00 Subject: Re: Xalan with Ruby (either command line or via Jrb)? Wes Gamble wrote: > Does anyone have any experience will using Xalan from a Ruby program > (Rails app. especially useful)? > > I'm willing to entertain running command lines but would like to use Jrb > (I've already got that working). > > I'd consider JRuby but feel like that might be too heavyweight. > > Any advice/feedback would be appreciated. > > Thanks, > Wes I seem to have gotten this working - a basic Xalan XSL transform from one file to another. The do_XSL_transform takes the input file name, output file name, and XSL stylesheet file name as parameters. Wes ========================================== require 'rjb' require_gem 'rjb', '>= 1.0.2' module XalanSupport def XalanSupport.load_Xalan_libraries ['serializer.jar', 'xml-apis.jar', 'xercesImpl.jar', 'xalan.jar'].each do |lib_name| Rjb::load("#{RAILS_ROOT}/lib/#{lib_name}", ['-Xmx512M']) end end def XalanSupport.do_XSL_transform(infile, outfile, xsl) #Load all of the Jars XalanSupport.load_Xalan_libraries #Load all the classes stream_source_class = Rjb::import('javax.xml.transform.stream.StreamSource') stream_result_class = Rjb::import('javax.xml.transform.stream.StreamResult') file_output_stream_class = Rjb::import('java.io.FileOutputStream') transformer_factory_class = Rjb::import('javax.xml.transform.TransformerFactory') #Create the XSL transformer transformer_factory = transformer_factory_class.newInstance transformer = transformer_factory.newTransformer(stream_source_class.new(xsl)) #Set up the input and output source = stream_source_class.new(infile) result = stream_result_class.new(file_output_stream_class.new(outfile)) transformer.transform(source, result) end end -- Posted via http://www.ruby-forum.com/.