【问题标题】:Hpricot looping with index?带索引的 Hpricot 循环?
【发布时间】:2009-10-30 02:57:55
【问题描述】:

我有以下 HTML 文档:

<ul>
  <li><span>Some text</span></li>
  <li><span>Some other text</span></li>
  <li><span>Some more text</span></li>
</ul>

如何使用 Hpricot 循环列表项并在每个项的开头插入一些新 HTML,以便获得以下内容:

<ul>
  <li><span>1</span><span>Some text</span></li>
  <li><span>2</span><span>Some other text</span></li>
  <li><span>3</span><span>Some more text</span></li>
</ul>

如果新跨度的内容是固定的,我可以使用:

 (doc/"li").prepend "<span>fixed</span>"

我的问题来自变量 span 的内容:如何在 prepend 循环中使用索引?

【问题讨论】:

    标签: html ruby-on-rails parsing hpricot


    【解决方案1】:

    试试这个代码:

    require 'rubygems'
    require 'hpricot'
    
    html = <<-EOF
    <ul>
      <li><span>Some text</span></li>
      <li><span>Some other text</span></li>
      <li><span>Some more text</span></li>
    </ul>
    EOF
    
    doc = Hpricot(html)
    (doc/'li/span').each_with_index do |element,index|
      value = index + 1
      element.before "<span>#{value}</span>"
    end
    
    puts doc.to_s
    

    【讨论】:

      【解决方案2】:

      使用 each_child 迭代每个 li 元素,并使用一个块来增加每次迭代的索引。

      【讨论】:

        猜你喜欢
        • 2013-02-15
        • 2019-03-16
        • 2020-06-20
        • 1970-01-01
        • 2018-01-02
        • 2015-10-12
        • 1970-01-01
        • 2012-09-22
        • 1970-01-01
        相关资源
        最近更新 更多