# File lib/xml/xpath.rb, line 2726
    def each(node, visitor)
      while parent = (adaptor = visitor.visit(node)).parent
        adaptor.each_preceding_siblings { |i|
          stack = visitor.visit(i).children.dup
          while node = stack.pop
            a = visitor.visit(node)
            stack.concat a.children
            yield a
          end
          yield visitor.visit(i)
        }
        node = parent
      end
    end