names=[]
visibility=public
kind=defined

--- [](index, name = nil) -> REXML::Element | nil
index が指し示している要素を返します。

index には整数もしくは文字列を指定できます。

index に整数を指定した場合は index 番目の子要素を返します。
index は 1-origin です。つまり
最初の要素の index は 1 であり、 0 ではありません。
n 番目の要素の index は n であり、 n-1 ではありません。
これは XPath の仕様に合わせています。

index に文字列を指定した場合はその文字列を XPath と見なし、
それで指定された要素を返します。
XPath が複数の要素を指している場合は、そのうち一つを返します。
XPath の性質上、子要素でない要素を返す場合もあります。

name は index に整数を指定した場合にのみ意味があります。
name を指定した場合 name という名前を持つ子要素の中で index 番目の
ものを返します。この場合も index は 1-origin です。

整数で指定した場合でも、XPathで指定した場合でも、
指定した要素が存在しない場合は nil を返します。

@param index 取り出したい要素の index (整数)もしくは xpath (文字列)
@param name 子要素の名前(文字列)

==== 例
  require 'rexml/document'
  doc = REXML::Document.new '<a><b/><c id="1"/><c id="2"/><d/></a>'
  doc.root.elements[1]       # => <b/>
  doc.root.elements['c']     # => <c id='1'/>
  doc.root.elements[2,'c']   # => <c id='2'/>
  
  doc = REXML::Document.new '<a><b><c /><a id="1"/></b></a>'
  doc.root.elements["a"]     # => nil
  doc.root.elements["b/a"]   # => <a id='1'/>
  doc.root.elements["/a"]    # => <a> ... </>

