用 Nokogiri 替换 <a>
Replacing <a> with Nokogiri
我正在使用 Nokogiri 扫描文档并删除作为附件存储的特定文件。但是我想指出,该值已在线删除。
例如。
<a href="...">File Download</a>
转换为:
File Removed
这是我尝试过的:
@doc = Nokogiri::HTML(html).to_html
@doc.search('a').each do |attachment|
attachment.remove
attachment.content = "REMOVED"
# ALSO TRIED:
attachment.content = "REMOVED"
end
第二个确实替换了锚文本,但保留了 href,用户仍然可以下载该值。
如何替换锚值并将其更改为具有新字符串的
?
使用 create_element
and 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"
希望对您有所帮助
我正在使用 Nokogiri 扫描文档并删除作为附件存储的特定文件。但是我想指出,该值已在线删除。
例如。
<a href="...">File Download</a>
转换为:
File Removed
这是我尝试过的:
@doc = Nokogiri::HTML(html).to_html
@doc.search('a').each do |attachment|
attachment.remove
attachment.content = "REMOVED"
# ALSO TRIED:
attachment.content = "REMOVED"
end
第二个确实替换了锚文本,但保留了 href,用户仍然可以下载该值。
如何替换锚值并将其更改为具有新字符串的
?
使用 create_element
and 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"
希望对您有所帮助