2015-03-30 2 views
1

Я пытаюсь получить весь текст в теге TD, кроме того, что находится внутри тегов <strong> (их может быть любое количество).Исключить HTML-тег с Nokogiri

В этом примере я хочу получить: "graavis ● diakriitik () ↝ " and " острый accent`":

<tr class="level2"> 
    <td> 
     <strong> grave accent </strong> 
     <strong> (=backquote character) </strong> 
     graavis ● diakriitik (`) ↝ 
     <a href="?word=sv82">acute accent</a> 
    </td> 
</tr> 

Я пытаюсь использовать следующий код, но он не работает:

desc = page.css('tr td:not(strong)').text 
+0

'@ doc.xpath ('// тр/тд/узел() [не (само :: сильный)]')' – mudasobwa

+0

@Ba la 'strong' - это тег, а не атрибут' td'. – mudasobwa

+0

@ mudasobwa: вы правы. Удалили. Ваше решение отлично работает. – Bala

ответ

1

Рассмотрим:

page.search("strong").remove 
page.css(".level2 > td").text.strip 
+0

Считаете ли вы сценарий, в котором обычный текст имеет слово «сильный» в нем? – Bala

+0

Да, это не имеет значения, если текст имеет слово _strong_. Метод 'search' фактически ищет' CSS-селекторов'. –

Смежные вопросы