50 lines
1.9 KiB
Ruby
50 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Nokogiri
|
|
module XSLT
|
|
###
|
|
# A Stylesheet represents an XSLT Stylesheet object. Stylesheet creation
|
|
# is done through Nokogiri.XSLT. Here is an example of transforming
|
|
# an XML::Document with a Stylesheet:
|
|
#
|
|
# doc = Nokogiri::XML(File.read('some_file.xml'))
|
|
# xslt = Nokogiri::XSLT(File.read('some_transformer.xslt'))
|
|
#
|
|
# xslt.transform(doc) # => Nokogiri::XML::Document
|
|
#
|
|
# Many XSLT transformations include serialization behavior to emit a non-XML document. For these
|
|
# cases, please take care to invoke the #serialize method on the result of the transformation:
|
|
#
|
|
# doc = Nokogiri::XML(File.read('some_file.xml'))
|
|
# xslt = Nokogiri::XSLT(File.read('some_transformer.xslt'))
|
|
# xslt.serialize(xslt.transform(doc)) # => String
|
|
#
|
|
# or use the #apply_to method, which is a shortcut for `serialize(transform(document))`:
|
|
#
|
|
# doc = Nokogiri::XML(File.read('some_file.xml'))
|
|
# xslt = Nokogiri::XSLT(File.read('some_transformer.xslt'))
|
|
# xslt.apply_to(doc) # => String
|
|
#
|
|
# See Nokogiri::XSLT::Stylesheet#transform for more information and examples.
|
|
class Stylesheet
|
|
# :call-seq:
|
|
# apply_to(document, params = []) -> String
|
|
#
|
|
# Apply an XSLT stylesheet to an XML::Document and serialize it properly. This method is
|
|
# equivalent to calling #serialize on the result of #transform.
|
|
#
|
|
# [Parameters]
|
|
# - +document+ is an instance of XML::Document to transform
|
|
# - +params+ is an array of strings used as XSLT parameters, passed into #transform
|
|
#
|
|
# [Returns]
|
|
# A string containing the serialized result of the transformation.
|
|
#
|
|
# See Nokogiri::XSLT::Stylesheet#transform for more information and examples.
|
|
def apply_to(document, params = [])
|
|
serialize(transform(document, params))
|
|
end
|
|
end
|
|
end
|
|
end
|