Я соскабливаю электронное письмо с множеством строк таблицы, некоторые из которых я хочу исключить. В таблице строк мне нужно выглядеть точно как:Как выбрать только строки таблицы с определенным контентом внутри
<tr>
<td class="quantity"> ANYTHING BUT EMPTY </td>
<td class="description"> ANYTHING BUT EMPTY </td>
<td class="price"> ANYTHING BUT EMPTY </td>
</tr>
Ни одна из строк таблицы не имеют класс или идентификатор. Более того, есть ненужные строки <table>
, которые содержат ячейки с этими классами, но некоторые без значений, поэтому мне нужно получить только таблицы, у которых есть эти три класса ячеек, и все три ячейки с непустыми значениями. Я не уверен, синтаксиса, чтобы сделать это:
body = Nokogiri::HTML(email)
wanted_rows = body.css('tr').select{ NOT SURE HOW TO ENCAPSULATE LOGIC HERE }
Обычно вы выбираете {| e | ...} 'где есть какой-то вызов метода на ваш элемент' e', что-то значит. Например, 'e.html.match (/ \ S /)' для проверки хотя бы одного непространственного символа. – tadman
Я понимаю, как .select и итераторы в целом работают, я просто не уверен, как инкапсулировать логику только для выбора строк таблицы, которые содержат непустые ячейки с соответствующими классами. – TDB
Добро пожаловать в SO. Когда вы задаете такой вопрос, это поможет нам, если вы предоставите лучший пример HTML, который имеет минимальные данные для демонстрации проблемы, например две строки, содержащие данные, а другой - нет. «[mcve]» говорит об этом. Чем больше вы нам помогаете, тем быстрее мы можем помочь вам, и чем точнее ваш вопрос и данные, тем точнее мы можем быть. Это помогает вам помочь нам другими словами. Мы * можем * выполнить дополнительную работу по настройке ввода, но это замедляет нас и фактически не поощряет помощь. –