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 21
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 122
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 98
def =~( path )
  XPath.match( self, path )
end
            
[]( reference, ns=nil ) click to toggle source
 
               # File rexml/light/node.rb, line 86
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 103
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 151
def children
  self
end
            
each( &block ) click to toggle source
 
               # File rexml/light/node.rb, line 44
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 147
def has_name?( name, namespace = '' )
  at(3) == name and namespace() == namespace
end
            
local_name() click to toggle source
 
               # File rexml/light/node.rb, line 62
def local_name
  namesplit
  @name
end
            
local_name=( name_str ) click to toggle source
 
               # File rexml/light/node.rb, line 67
def local_name=( name_str )
  _old_put( 1, "#@prefix:#{name_str}" )
end
            
name() click to toggle source
 
               # File rexml/light/node.rb, line 48
def name
  at(2)
end
            
name=( name_str, ns=nil ) click to toggle source
 
               # File rexml/light/node.rb, line 52
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 75
def namespace( prefix=prefix() )
  namespace_of( self, prefix )
end
            
namespace=( namespace ) click to toggle source
 
               # File rexml/light/node.rb, line 79
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 133
def node_type
  _old_get(0)
end
            
parent() click to toggle source
 
               # File rexml/light/node.rb, line 155
def parent
  at(1)
end
            
parent=( node ) click to toggle source
 
               # File rexml/light/node.rb, line 58
def parent=( node )
  _old_put(1,node)
end
            
prefix( namespace=nil ) click to toggle source
 
               # File rexml/light/node.rb, line 71
def prefix( namespace=nil )
  prefix_of( self, namespace )
end
            
root() click to toggle source
 
               # File rexml/light/node.rb, line 142
def root
  context = self
  context = context.at(1) while context.at(1)
end
            
size() click to toggle source
 
               # File rexml/light/node.rb, line 36
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 137
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 159
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