我有一段工作中的JRuby代码(从Keith's Blog中窃取),它包装了SAXON xslt处理器API。
这是所需API的Java文档参考。
这是我正在使用的JRuby代码:
请告诉我这个问题是否没有意义或者是否有改进的空间。现在,我想知道我是否可以以Ruby框架来包装相同的API?
这是所需API的Java文档参考。
这是我正在使用的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