2009-10-30 101 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元素,並使用塊爲每次迭代遞增索引。