我尝试过很多这样的排列:
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 ∙ 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 ∙ Progamer Lim Yohwan, the E-Sports Icon</a></p>
我该怎么做?
答案 0 :(得分:2)
使用builder interface,属性作为doc.tagname
调用的参数提供,内容进入块内。所以这样的事情应该可以解决问题:
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
答案 1 :(得分:2)
mu是正确的,但这不是更好吗?
builder = Nokogiri::HTML::Builder.new do |doc|
doc.html do |html|
html.body do |body|
links.each do |i|
body.p do |p|
p.a i.text, :href => i[:href]
end
end
end
end
end