5 import java.io.FileOutputStream
6 import javax.xml.transform.stream.StreamSource
7 import javax.xml.transform.TransformerFactory
11 options = OpenStruct.new
12 options.parameters = {}
14 opts = OptionParser.new do |opts|
15 opts.banner = "Usage: [options] xslt {xml} {xslt} [{result}]"
17 opts.separator "Specific options:"
19 opts.on("-p", "--parameters name=value,name1=value1", Array) do |n|
21 name, value = v.split(/\s*=\s*/)
22 options.parameters[name] = value
31 options = XSLTOptions.parse(ARGV)
33 if (ARGV.length < 2 || ARGV.length > 3)
34 puts "Usage: xslt {xml} {xslt} [{result}]"
38 document = StreamSource.new ARGV[0]
39 stylesheet = StreamSource.new ARGV[1]
40 output = ARGV.length < 3 ? java.lang.System::out : FileOutputStream.new(ARGV[2])
41 result = javax.xml.transform.stream.StreamResult.new output
44 transformer = TransformerFactory.newInstance.newTransformer(stylesheet)
45 options.parameters.each {|name, value| transformer.setParameter(name, value) }
46 transformer.transform(document, result)
47 rescue java.lang.Exception => e