# File lib/html/selector.rb, line 468 468: def select_first(root) 469: stack = [root] 470: while node = stack.pop 471: if node.tag? && subset = match(node, true) 472: return subset.first if !subset.empty? 473: elsif children = node.children 474: stack.concat children.reverse 475: end 476: end 477: nil 478: end