Проблема
Я запускаю некоторую статистику по различным URL-адресам. Я хочу найти элемент верхнего уровня с наиболее концентрированным количеством детей. Метод, которому я хотел бы следовать, состоит в том, чтобы идентифицировать все элементы верхнего уровня, а затем определить, какой процент всех элементов на странице принадлежит ему.
Цель
- Рекурсивно получить всех дочерних элементов данного элемента.
Входы: элемент Нокогири
Выходы: массив элементов Nokogiri ИЛИ общее количество дочерних элементов.
Настраивать
- Руби 1.9.2
- Драгоценный камень Нокогири
Что я в итоге придумал (это работает, но не так красиво, как мой выбранный ответ ниже)
getChildCount(elem)
children = elem.children
return 0 unless children and children.count > 0
child_count = children.count
children.each do |child|
child_count += getChildCount(child)
end
child_count
end