# File lib/nokogiri/xml/node.rb, line 413 def ancestors selector = nil return NodeSet.new(document) unless respond_to?(:parent) return NodeSet.new(document) unless parent parents = [parent] while parents.last.respond_to?(:parent) break unless ctx_parent = parents.last.parent parents << ctx_parent end return NodeSet.new(document, parents) unless selector NodeSet.new(document, parents.find_all { |parent| parent.matches?(selector) }) end