Я не знаю нокогири достаточно хорошо, чтобы знать, насколько хорошо это будет работать, но я подозреваю, что следующий пример может предложить путь вперед.Далее предполагается, что NodeSet ведет себя как массив ruby, который он выполняет в соответствии со своими документами API [1]
a = (0..9).to_a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
evens = a.select { |i| i % 2 == 0 }
=> [0, 2, 4, 6, 8]
odds = a - evens
=> [1, 3, 5, 7, 9]
Я считаю, что вы должны иметь возможность сделать что-то похожее с вашим набором узлов, чтобы, когда ваш поиск былвыполнив, вы можете найти несопоставленные узлы, вычитая новый набор узлов из исходного.
[1] http://nokogiri.rubyforge.org/nokogiri/Nokogiri/XML/NodeSet.html#M000448