Module: Dcc::Transform::Xslt
- Defined in:
- lib/dcc/transform/xslt.rb
Overview
Dcc::Transform::Xslt applies an XSLT stylesheet to a DCC XML document.
Nokogiri is OFFICIALLY banned outside validation, so we shell out to
the system xsltproc (libxslt) for XSLT 1.0 transforms. For XSLT
2.0/3.0, set ENV["SAXON_JAR"] to point at saxon-he.jar.
Class Method Summary collapse
Class Method Details
.call(xml, stylesheet, engine: :xsltproc) ⇒ Dcc::Transform::Result
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/dcc/transform/xslt.rb', line 18 def call(xml, stylesheet, engine: :xsltproc) xml_string = xml.is_a?(::String) ? xml : xml.to_xml output = case engine when :xsltproc then run_xsltproc(xml_string, stylesheet) when :saxon then run_saxon(xml_string, stylesheet) else raise ::ArgumentError, "unknown XSLT engine: #{engine.inspect}" end ::Dcc::Transform::Result.new(payload: output, engine: engine) end |