ruby - 如果我想要 HTML 输出,如何使用 Nokogiri 向某些文本添加 a'href' 标签?

标签 ruby nokogiri

我已经尝试了很多这样的排列:

builder = Nokogiri::HTML::Builder.new do |doc|
    doc.html {
        doc.body {
            links.each do |i|
                doc.p {
                    doc.text "#{i.text}"
                } 
                    doc.a["href"] = i[:href]
            end
            }           
        }
end

其中 links 是一个数组,其中包含 test:href 所需的值。

这产生的是(为简洁起见缩写):

This is the HTML generated
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<p>10 &#8729; Progamer Lim Yohwan, the E-Sports Icon</p>
<a href="http://boxerbiography.blogspot.com/2006/12/10-progamer-lim-yohwan-e-sports-icon.html"></a>

我希望它产生的地方是:

<p><a href="http://boxerbiography.blogspot.com/2006/12/10-progamer-lim-yohwan-e-sports-icon.html">10 &#8729; Progamer Lim Yohwan, the E-Sports Icon</a></p>

我该怎么做?

最佳答案

随着builder interface ,属性作为参数提供给 doc.tagname 调用,内容进入 block 内。所以像这样的事情应该可以解决问题:

builder = Nokogiri::HTML::Builder.new do |doc|
    doc.html { 
        doc.body { 
            links.each do |i| 
                doc.p {
                    doc.a(:href => i[:href]) {
                        doc.text i.text # or maybe i[:text]
                    }
                }
            end  
        }    
    }
end

关于ruby - 如果我想要 HTML 输出,如何使用 Nokogiri 向某些文本添加 a'href' 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025598/

相关文章:

sql - 如何过滤数据库中不存在的模型列的值?

ruby - 如何使交互式 Ruby 程序更好?

ruby - Nokogiri xpath - 根据属性条件计算 XML 元素的出现次数

ruby-on-rails - 使用 Nokogiri 列出 HTML 中存在的标签

ruby-on-rails - 使用 Nokogiri 解析 XML

ruby - 我如何以这种特定方式解析此 Craigslist 页面?

html - 使用 Nokogiri CSS 方法获取 alt 标签内的所有元素

ruby - 在 Rails + Nokogiri 中检索 <br> 之间的文本

ruby - 压缩文件时丢失数据

ruby-on-rails - Rails 中的一个 Controller 有多个数据库表