Hpricot 带索引循环?

发布于 2024-08-08 23:16:53 字数 772 浏览 8 评论 0原文

我有以下 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 的内容:如何在前置循环中使用索引?

I have the following HTML doc :

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

How can I use Hpricot to loop on the list items and insert some new HTML at the beginning of each, so that I get the following :

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

If the new span's content were fixed, I could use :

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

My problem comes from the variable span's content : how can I use an index in the prepend loop?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彻夜缠绵 2024-08-15 23:16:53

试试这个代码:

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

Try this code:

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
机场等船 2024-08-15 23:16:53

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

Use each_child to iterate over each of the li elements, and use a block to increment the index for each iteration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文