Nokogiri或" string"创建这个HTML片段?

时间:2014-03-20 21:33:15

标签: ruby nokogiri

我需要创建一个嵌入页面的HTML片段(一个简单的js库)。这是HTML:

<div id="gallery-1" class="royalSlider rsDefault">
  <a class="rsImg" data-rsw="632" data-rsh="500" data-rsbigimg="../img/paintings/2.jpg" href="../img/paintings/700x500/2.jpg">
    Vincent van Gogh - The Starry Night
    <img width="96" height="72" class="rsTmb" src="../img/paintings/t/2.jpg">
  </a>
</div>

我可以使用字符串插值创建它,但有人建议我使用Nokogiri。我不知道如何嵌套节点。

@doc = Nokogiri::HTML::DocumentFragment.parse ""
  Nokogiri::HTML::Builder.with(@doc) do |doc|
    g.pictures.each do |picture|
      doc.create_element "a", :class => "rsImg"
    end
  end

使用Nokogiri是否更好,还是我可以继续使用简单方法(字符串)?如何创建我需要的嵌套结构?

更新

与Nokogiri签订

@doc = Nokogiri::HTML::DocumentFragment.parse ""
Nokogiri::HTML::Builder.with(@doc) do |doc|
  doc.div(:id => 'content-gallery', :class => 'royalSlider rsDefault') {
    g.pictures.each do |picture|
      doc.a(:src => picture.image_url(:gallery), :class => 'rsImg') {
        doc.img(:src => picture.image_url(:widget), :class => 'rsTmb')
      } 
    end
    }
end
@doc.to_html

0 个答案:

没有答案