#ruby #xpath #nokogiri
#ruby #xpath #nokogiri
Вопрос:
У меня есть страница, которую я проанализировал с помощью Nokogiri, но мне нужно получить текст из тега с комментариями. HTML приведен ниже:
<div class="parent">
<div class="child">
<span class="visible"> hello </span>
<!-- <span class="commented"> hi </span> -->
</div>
</div>
предполагая, что у меня есть страница в виде page
объекта Nokogiri, это то, что я пробовал, но это дает мне 0
:
page.xpath("//div[@class='parent']/div[@class='child']/comment()").each {|comment| comment.text }
Выполняется только:
page.xpath("//div[@class='parent']/div[@class='child']/comment()")
дает:
[#<Nokogiri::XML::Comment:0x3fe466d8d634 " <span class="commented">hi </span> ">]
У меня закончились идеи о том, как извлечь hi
текст.
Ответ №1:
Я не эксперт в Nokogiri, но что-то вроде этого, кажется, работает
comment_node = Nokogiri::HTML(page.at("//div[@class='parent']/div[@class='child']/comment()").text)
comment_node.text.strip
=> "hi"
Комментарии:
1. Да, это так. Мне это нравится xD