class Mixml::Selection
Selection
of XML nodes
Attributes
@return [Nokogiri::XML::NodeSet] Selected nodes
Public Class Methods
Initialize a new selection
@param nodesets [Array<Nokogiri::XML::NodeSet>] Selected nodes
# File lib/mixml/selection.rb, line 13 def initialize(nodesets) @nodesets = nodesets end
Public Instance Methods
Append children to node
@param template [Template::Base] Template
to replace nodes with
# File lib/mixml/selection.rb, line 57 def append(template) template = template.to_mixml_template each_node do |node| value = template.evaluate(node) node << value end end
Remove selected nodes from the document
# File lib/mixml/selection.rb, line 18 def remove each_node do |node| node.remove end end
Rename selected nodes with a template
@param template [Template::Base] Template
for new name
# File lib/mixml/selection.rb, line 81 def rename(template) template = template.to_mixml_template each_node do |node| value = template.evaluate(node) node.name = value end end
Replace selected nodes with a template
@param template [Template::Base] Template
to replace nodes with
# File lib/mixml/selection.rb, line 45 def replace(template) template = template.to_mixml_template each_node do |node| value = template.evaluate(node) node.replace(value) end end
Set the value selected nodes with a template
@param template [Template::Base] Template
to set the value
# File lib/mixml/selection.rb, line 69 def value(template) template = template.to_mixml_template each_node do |node| value = template.evaluate(node) node.value = value end end
Print selected nodes to stdout
@param template [Template::Base] Template
to evaluate and print
# File lib/mixml/selection.rb, line 27 def write(template = nil) if not template.nil? then template = template.to_mixml_template end each_node do |node| if template.nil? then node.write_xml_to($stdout) puts else puts template.evaluate(node) end end end
Protected Instance Methods
Execute a block for each node
@yield Block to execute for each node @yieldparam node [Nokogiri::XML::Node] Current node
# File lib/mixml/selection.rb, line 96 def each_node @nodesets.each do |nodeset| nodeset.each do |node| yield node end end end