2009-10-30 96 views
1

我有以下的HTML文档:Hpricot与索引循环?

<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>" 

我的问题来自于变量跨度的内容:我怎么能在前置l使用索引空中接力?

回答

2

试试这个代码:

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 
0

使用each_child迭代每个li元素,并使用块为每次迭代递增索引。