Class XTemplate::XNode
In: lib/xtemplate/node.rb
lib/xtemplate/yaml.rb
Parent: Object

Methods

Included Modules

XPath Util

Constants

DEFAULT_COMMAND = { :select => true, :template => true, :element => true, :attribute => true, :expand => true, :include => true, :copy_of => true, :value_of => true, :each => true, :property => true, :invoke => true, :@id => true, :@each => true, :@type => true, }
EXPAND_CODE = %q` def expand(data, pdata, rdata, plugin) if( @alt && plugin._alt_exist?(@alt) ) @parent.children.delete(self) end if( @data_path ) case data when Hash val = value_by_path2(@data_path, data, pdata, rdata, plugin) case val when Array nodes = val.collect{|v| node = deep_dup() node.parent = self case v when Hash node.expand_with_hash(v, pdata, rdata, plugin) else node.add_child(v) end node.expand_attr(v) node } @name = nil @attrs = [] @children = nodes #@data_path = nil when Hash expand_attr(val) expand_with_hash(val, pdata, rdata, plugin) else expand_attr(val) add_child(val) end if( @expand ) @name = nil @attrs = [] case val when Hash val.clear() val[TextNode] = self.to_s() if( @expand == :strip ) val[TextNode] = val[TextNode].strip() end when Array for i in 0..(val.size-1) s = @children[i].to_s() if( @expand == :strip ) s = s.strip() end case val[i] when Hash val[i].clear() val[i][TextNode] = s when String val[i][0..-1] = @children[i].to_s() end end when String s = self.to_s() if( @expand == :strip ) s = s.strip() end val[0..-1] = s end @children = [] end end else expand_attr(data) expand_children(data, pdata, rdata, plugin) end # expand <xx:attribute ..> after expanding children. if( @exattr ) val = to_s() @children = [] node = self while( node = node.parent ) if( node.name ) break end end node.add_attr(@exattr) node.add_attrval(val) @exattr = nil end end `   (1)current data (2)parent data (3)root data (4)plugin object

Attributes

alt  [RW] 
attrs  [RW] 
children  [RW] 
data_path  [RW] 
name  [RW] 
option  [RW] 
parent  [RW] 
pi  [RW] 
propagation  [RW] 

Public Class methods

Public Instance methods

attrval(key)

Alias for lattrval

also implemented in xt.c.

also implemented in xt.c.

[Validate]