如何从注释的HTML标记中提取文本

时间:2016-10-24 11:26:47

标签: ruby xpath nokogiri

我有一个我用Nokogiri解析的页面,但我需要从注释标签中获取文本。 HTML如下:

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

假设我将该页面设为Nokogiri page对象,这就是我尝试过但它给了我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 个答案:

答案 0 :(得分:4)

我不是Nokogiri专家,但这样的事情似乎有效

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