用Nokogiri删除元素

时间:2011-07-08 23:04:54

标签: ruby nokogiri

使用Nokogiri,我如何删除所有内容,包括HTML文档的body元素?还有关闭的身体元素和之后的一切?

1 个答案:

答案 0 :(得分:3)

最简单的方法(当然是恕我直言)将使用XPath来提取<body>元素:

html = '<html><head><title>xxx</title></head><body><p>dsfkj</p><p><b>sdff</b> dsfsdf</p></body></html>'
doc  = Nokogiri::HTML(html)
body = doc.xpath('//body')

现在<body>中只有body元素(及其子元素)。然后,获取HTML:

body_html = body.to_s
# "<body>\n<p>dsfkj</p>\n<p><b>sdff</b> dsfsdf</p>\n</body>"

诀窍是提取你想要的东西而不是试图扔掉你不想要的东西。最终的结果是一样的,但找到一件你想要的东西比找到一堆你不想要的东西更容易找到你想要的查询语言。