как то так?
items=doc.xpath('//tr').map {|row| row.xpath('.//span/text()').select{|item| item.text.match(/\w+/)}.map {|item| item.text} }
возвращается:
=> [["4242YP", "Тема собрания", "13:00 PM", "11 ноября 2009", "America / New_York", "30", "example@email.com", "39243368"], [ "АБВГДЕЖ"]]
Выбор включает в себя только промежутки, начинающиеся с символов слова (например, исключая пробелы, которые есть у некоторых из ваших промежутков). Возможно, вам придется усовершенствовать фильтр «select» для вашего конкретного случая.
Я добавил минималистскую строку, которая содержала span, содержащий abcdefg, чтобы вы могли видеть вложенный массив.