Я перемещаюсь по документу, используя селекторы CSS с Ruby, но я обнаружил некоторые ошибки селекторов css в Hpricot, которые исправлены в Nokogiri, и хочу переключиться.
Единственная проблема, с которой я столкнулся, - это выяснить, как получить массив всех дочерних элементов, которые являются "контейнерами" (т.е. не текстовыми узлами). Hpricot предоставляет эту функциональность прямо из коробки с помощью метода контейнеров.
Итак, в Hpricot я мог бы сделать:
children = doc.select('*')[0].containers
Но с Nokogiri похоже, что ту же функциональность можно получить только следующим образом (и я не уверен, работает ли она точно так же):
children = doc.css('*')[0].children.to_a.keep_if {|x| x.type != Nokogiri::XML::Node::TEXT_NODE }
Есть лучший способ сделать это?