    # File lib/facets/more/tagiterator.rb, line 199
      def first(tag,*arg) nth(tag,1,*arg) do |f| yield f end end
      alias_method :next, :first

      def each_block(tag,closetag=nil)
        t=0
        s,d =find_opentag(tag)
        raise RuntimeError,"tag(#{tag}) not found" unless s

        while s do
          if closetag then
            e=find_closetag(closetag,s,tag)
          else
            e=find_closetag(tag,s)
          end
          e=-1 unless e
          yield self.class.new(@text[s..e],tag,parse_attribute(d))
          if e>=0 then
            t=@text.index('>',e+1)
            t=@text.length unless t
            s,d = find_opentag(tag,t)
          else
            s=false
          end
        end
        self.class.new(text[t+1..-1])
      end

      def collect(*arg)
        a=[]
        each_block(*arg) do |tt| a.push tt end
        a
      end

      def enumtag(tag)
        s,d = find_openenumtag(tag)
        while s do
          e=find_closeenumtag(tag,s+1)
          e=-1 unless e
          yield self.class.new(@text[s..e],tag,parse_attribute(d))
          s,d = find_openenumtag(tag,s)
        end
      end

      def enumcollect(tag)
        a=[]
        enumtag(tag) do |t| a.push t end
        a
      end

      def for_this
        yield self
      end

      def get_nth(*arg) r=nil; nth(*arg) do |bl| r=bl end; r; end

      def get_first(*arg) r=nil; first(*arg) do |bl| r=bl end; r; end

      def tagexist?(tag,st=0)
        s=find_element(tag,st)
        if s then true else false end
      end

      def tagnext
        s=@text.index("<")
        return nil unless s
        e=@text.index(">",s)
        return nil unless s
        @text[s..e].scan(/[^<>\s]+/)[0]
      end

      def nth_tailer(tag,n)
        nth(tag,n) do end
      end

    end

    #  _____         _
    # |_   _|__  ___| |_
    #   | |/ _ \/ __| __|
    #   | |  __/\__ \ |_
    #   |_|\___||___/\__|
    #

    ??