Nokogiri рекурсивно получает все дочерние элементы.

Проблема

Я запускаю некоторую статистику по различным URL-адресам. Я хочу найти элемент верхнего уровня с наиболее концентрированным количеством детей. Метод, которому я хотел бы следовать, состоит в том, чтобы идентифицировать все элементы верхнего уровня, а затем определить, какой процент всех элементов на странице принадлежит ему.

Цель

  • Рекурсивно получить все дочерние элементы данного элемента.

Входные данные: элемент Nokogiri

Выходные данные: массив элементов Nokogiri ИЛИ общее количество дочерних элементов

Настройка

  • Ruby 1.9.2
  • Драгоценный камень Nokogiri

Что я в итоге получил вверх с (это работает, но не так красиво, как мой выбранный ответ ниже)

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
11
задан wmarbut 10 April 2012 в 13:00
поделиться