XPath: найти узел в текстовом узле - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть следующий HTML:

<code>The first code block</code>
<p>Some text and <code>the second code block</code> followed by other text</p>

Мне нужно найти и удалить из него все code блоки. Я использую следующий XPath '//code', но он находит только первый блок кода, а второй остается.

Вопрос: Почему '//code' не может перехватить второй блок кода? Как это исправить?

Подробности: Я делаю это в Ruby, используя Nokagiry. Мой код выглядит так:

html = Nokogiri::HTML(File.read(htmlFile))
html.search('//code').remove

UPDATE:

XPath действительно работал. Я просто ошибся в другом месте.

1 Ответ

0 голосов
/ 08 ноября 2018

Похоже, вы забыли об итераторе ...
Попробуйте:

html = Nokogiri::HTML(File.read(htmlFile))
html.search('//code').each{|htm| htm.remove}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...