Tag: saxon

如何从Ruby 1.8或1.9调用Java API

我有这个JRuby 工作代码(从Keith的博客中窃取),它包装了SAXON xslt处理器API。 现在,我想知道我是否可以,如何在Ruby框架中包装相同的API? 请告诉我这个问题是否无意义,或者是否可以某种方式改进。 这是所需API的java doc参考。 这是我正在使用的JRuby代码: require ‘java’ module JXslt include_class “javax.xml.transform.TransformerFactory” include_class “javax.xml.transform.Transformer” include_class “javax.xml.transform.stream.StreamSource” include_class “javax.xml.transform.stream.StreamResult” include_class “java.lang.System” class XsltProcessor def transform(xslt,infile,outfile) transformer = @tf.newTransformer(StreamSource.new(xslt)) transformer.transform(StreamSource.new(infile), StreamResult.new(outfile)) end end # XsltProcessor class Saxon < XsltProcessor TRANSFORMER_FACTORY_IMPL = "net.sf.saxon.TransformerFactoryImpl" def initialize System.setProperty("javax.xml.transform.TransformerFactory", TRANSFORMER_FACTORY_IMPL) @tf = TransformerFactory.newInstance end end end