class Nokogiri::XML::NodeSet

def css *paths

For more information see Nokogiri::XML::Node#css

Search this NodeSet for css +paths+
##
def css *paths
  handler = ![
    Hash, String, Symbol
  ].include?(paths.last.class) ? paths.pop : nil
  ns = paths.last.is_a?(Hash) ? paths.pop : nil
  sub_set = NodeSet.new(document)
  each do |node|
    doc = node.document
    search_ns = ns || (doc.root ? doc.root.namespaces : {})
    xpaths = paths.map { |rule|
      [
        CSS.xpath_for(rule.to_s, :prefix => ".//", :ns => search_ns),
        CSS.xpath_for(rule.to_s, :prefix => "self::", :ns => search_ns)
      ].join(' | ')
    }
    sub_set += node.xpath(*(xpaths + [search_ns, handler].compact))
  end
  document.decorate(sub_set)
  sub_set
end