首页 > 解决方案 > 替换为 Nokogiri

问题描述

标签: htmlrubyreplacenokogiri

解决方案


使用create_element和的组合replace来实现这一点。找到下面的内联评论。

html = '<a href="...">File Download</a>'
dom = Nokogiri::HTML(html) # parse with nokogiri
dom.to_s # original content
#=> "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><a href=\"...\">File Download</a></body></html>\n"

# scan the dom for hyperlinks
dom.css('a').each do |a|
  node = dom.create_element 'p' # create paragraph element
  node.inner_html = "REMOVED" # add content you want
  a.replace node # replace found link with paragraph
end
dom.to_s # modified html
#=> "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>REMOVED</p></body></html>\n"

希望这可以帮助


推荐阅读