In Files

  • rexml/light/node.rb

REXML::Light::Node

Represents a tagged XML element. Elements are characterized by having children, attributes, and names, and can themselves be children.

Constants

NAMESPLIT
PARENTS

Public Class Methods

new(node=nil) click to toggle source

Create a new element.

 
               # File rexml/light/node.rb, line 20
def initialize node=nil
  @node = node
  if node.kind_of? String
    node = [ :text, node ]
  elsif node.nil?
    node = [ :document, nil, nil ]
  elsif node[0] == :start_element
    node[0] = :element
  elsif node[0] == :start_doctype
    node[0] = :doctype
  elsif node[0] == :start_document
    node[0] = :document
  end
end
            

Public Instance Methods

<<(element) click to toggle source

Append a child to this element, optionally under a provided namespace. The namespace argument is ignored if the element argument is an Element object. Otherwise, the element argument is a string, the namespace (if provided) is the namespace the element is created in.

 
               # File rexml/light/node.rb, line 121
def << element
  if node_type() == :text
    at(-1) << element
  else
    newnode = Node.new( element )
    newnode.parent = self
    self.push( newnode )
  end
  at(-1)
end
            
=~( path ) click to toggle source
 
               # File rexml/light/node.rb, line 97
def =~( path )
  XPath.match( self, path )
end
            
[]( reference, ns=nil ) click to toggle source
 
               # File rexml/light/node.rb, line 85
def []( reference, ns=nil )
  if reference.kind_of? String
    pfx = ''
    pfx = "#{prefix(ns)}:" if ns
    at(3)["#{pfx}#{reference}"]
  elsif reference.kind_of? Range
    _old_get( Range.new(4+reference.begin, reference.end, reference.exclude_end?) )
  else
    _old_get( 4+reference )
  end
end
            
[]=( reference, ns, value=nil ) click to toggle source

Doesn’t handle namespaces yet

 
               # File rexml/light/node.rb, line 102
def []=( reference, ns, value=nil )
  if reference.kind_of? String
    value = ns unless value
    at( 3 )[reference] = value
  elsif reference.kind_of? Range
    _old_put( Range.new(3+reference.begin, reference.end, reference.exclude_end?), ns )
  else
    if value
      _old_put( 4+reference, ns, value )
    else
      _old_put( 4+reference, ns )
    end
  end
end
            
children() click to toggle source
 
               # File rexml/light/node.rb, line 150
def children
  self
end
            
each( &block ) click to toggle source
 
               # File rexml/light/node.rb, line 43
def each( &block )
  size.times { |x| yield( at(x+4) ) }
end
            
has_name?( name, namespace = '' ) click to toggle source
 
               # File rexml/light/node.rb, line 146
def has_name?( name, namespace = '' )
  at(3) == name and namespace() == namespace
end
            
local_name() click to toggle source
 
               # File rexml/light/node.rb, line 61
def local_name
  namesplit
  @name
end
            
local_name=( name_str ) click to toggle source
 
               # File rexml/light/node.rb, line 66
def local_name=( name_str )
  _old_put( 1, "#@prefix:#{name_str}" )
end
            
name() click to toggle source
 
               # File rexml/light/node.rb, line 47
def name
  at(2)
end
            
name=( name_str, ns=nil ) click to toggle source
 
               # File rexml/light/node.rb, line 51
def name=( name_str, ns=nil )
  pfx = ''
  pfx = "#{prefix(ns)}:" if ns
  _old_put(2, "#{pfx}#{name_str}")
end
            
namespace( prefix=prefix() ) click to toggle source
 
               # File rexml/light/node.rb, line 74
def namespace( prefix=prefix() )
  namespace_of( self, prefix )
end
            
namespace=( namespace ) click to toggle source
 
               # File rexml/light/node.rb, line 78
def namespace=( namespace )
  @prefix = prefix( namespace )
  pfx = ''
  pfx = "#@prefix:" if @prefix.size > 0
  _old_put(1, "#{pfx}#@name")
end
            
node_type() click to toggle source
 
               # File rexml/light/node.rb, line 132
def node_type
  _old_get(0)
end
            
parent() click to toggle source
 
               # File rexml/light/node.rb, line 154
def parent
  at(1)
end
            
parent=( node ) click to toggle source
 
               # File rexml/light/node.rb, line 57
def parent=( node )
  _old_put(1,node)
end
            
prefix( namespace=nil ) click to toggle source
 
               # File rexml/light/node.rb, line 70
def prefix( namespace=nil )
  prefix_of( self, namespace )
end
            
root() click to toggle source
 
               # File rexml/light/node.rb, line 141
def root
  context = self
  context = context.at(1) while context.at(1)
end
            
size() click to toggle source
 
               # File rexml/light/node.rb, line 35
def size
  if PARENTS.include? @node[0]
    @node[-1].size
  else
    0
  end
end
            
text=( foo ) click to toggle source
 
               # File rexml/light/node.rb, line 136
def text=( foo )
  replace = at(4).kind_of?(String)? 1 : 0
  self._old_put(4,replace, normalizefoo)
end
            
to_s() click to toggle source
 
               # File rexml/light/node.rb, line 158
def to_s

end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus