2016-10-24 1 views
1

J'ai une page que j'ai analysée avec Nokogiri mais j'ai besoin d'obtenir le texte d'un tag commenté. Le code HTML est ci-dessous:Comment extraire le texte d'une balise HTML commentée

<div class="parent"> 
    <div class="child"> 
    <span class="visible"> hello </span> 
    <!-- <span class="commented"> hi </span> --> 
    </div> 
</div> 

en supposant que j'ai la page comme un objet Nokogiri page ce que je l'ai essayé, mais ça me donne 0:

page.xpath("//div[@class='parent']/div[@class='child']/comment()").each {|comment| comment.text } 

Courir seulement:

page.xpath("//div[@class='parent']/div[@class='child']/comment()") 

donne:

[#<Nokogiri::XML::Comment:0x3fe466d8d634 " <span class=\"commented\">hi </span> ">] 

Je suis à court d'idées pour essayer d'aller chercher le texte hi.

Répondre

4

Je ne suis pas un expert Nokogiri mais quelque chose comme cela semble fonctionner

comment_node = Nokogiri::HTML(page.at("//div[@class='parent']/div[@class='child']/comment()").text) 
comment_node.text.strip 
=> "hi" 
+0

Oui, il le fait. J'adore ce xD – ollaollu