Найдите самую большую таблицу на странице - PullRequest
1 голос
/ 31 января 2011

Может кто-нибудь сказать мне, как я могу найти самую большую таблицу на веб-странице (то есть ту, которая содержит наибольшее количество строк), используя Nokogiri? Можно ли это сделать с помощью лямбда-функций?

Ответы [ 3 ]

2 голосов
/ 31 января 2011
biggest_table = doc.xpath('//table').max_by do |table|
  table.xpath('.//tr').length
end

Или, если есть связь, возможно, вам нужен список всех таблиц с наибольшим количеством строк:

# Hash mapping number of rows to array of table nodes
tables = doc.xpath('//table').group_by{ |t| t.xpath('.//tr').length }

# Array of all (possibly only 1) tables with the most rows
biggest_n = tables[table.keys.max]
0 голосов
/ 31 января 2011
tables = @doc.xpath('//table')
tr_count = tables.map{|n| n.xpath('tr|*/tr').length}
biggest_table = tables[tr_count.index(tr_count.max)]
0 голосов
/ 31 января 2011

Это может быть не то, что вы ищете, но вы можете легко сделать это в браузере, используя jQuery или Prototype.

...