module Hpricot::Doc::Trav

def author

- author-name in RSS
- author-name in RSS
- in HTML
- in HTML

+author+ searchs following information.

It returns nil if not found.
+author+ searches author and return it as a text.
def author
  traverse_element('meta',
    '{http://www.w3.org/1999/xhtml}meta') {|e|
    begin
      next unless e.fetch_attr('name').downcase == 'author'
      author = e.fetch_attribute('content').strip
      return author if !author.empty?
    rescue IndexError
    end
  }
  traverse_element('link',
    '{http://www.w3.org/1999/xhtml}link') {|e|
    begin
      next unless e.fetch_attr('rev').downcase == 'made'
      author = e.fetch_attribute('title').strip
      return author if !author.empty?
    rescue IndexError
    end
  }
  if channel = find_element('{http://purl.org/rss/1.0/}channel')
    channel.traverse_element('{http://purl.org/dc/elements/1.1/}creator') {|e|
      begin
        author = e.extract_text.strip
        return author if !author.empty?
      rescue IndexError
      end
    }
    channel.traverse_element('{http://purl.org/dc/elements/1.1/}publisher') {|e|
      begin
        author = e.extract_text.strip
        return author if !author.empty?
      rescue IndexError
      end
    }
  end
  nil
end

def css_path

def css_path
  nil
end

def root

def root
  es = []
  children.each {|c| es << c if c.elem? } if children
  raise Hpricot::Error, "no element" if es.empty?
  raise Hpricot::Error, "multiple top elements" if 1 < es.length
  es[0]
end

def title

- ... in RSS
- ... in HTML

+title+ searchs following information.

It returns nil if not found.
+title+ searches title and return it as a text.
def title
  e = find_element('title',
    '{http://www.w3.org/1999/xhtml}title',
    '{http://purl.org/rss/1.0/}title',
    '{http://my.netscape.com/rdf/simple/0.9/}title')
  e && e.extract_text
end

def traverse_all_element(&block)

def traverse_all_element(&block)
  children.each {|c| c.traverse_all_element(&block) } if children
end

def traverse_some_element(name_set, &block)

def traverse_some_element(name_set, &block)
  children.each {|c| c.traverse_some_element(name_set, &block) } if children
end

def xpath

def xpath
  "/"
end