使用一大块html加载hpricot元素

时间:2009-12-15 04:10:14

标签: html ruby parsing hpricot custom-tags

有没有办法将一大块html加载到Hpricot :: Doc对象中?

我正在尝试从页面中解析自定义标记中的各种html块。

所以,如果我有:

<foo>
  <b>here is some stuff</b>
  <table>
    <tr>
      <td>one</td>
      <td>two</td>
    </tr>
    <tr>
      <td>three</td>
      <td><four</td>
    </tr>
  </table>
</foo>

我希望能够在Hpricot :: Doc对象中获取foo和它的内容,因为我将需要做一些额外的处理并最终交换()它以便foo及其所有子代替换文档。

我知道我可以通过foo的孩子们进行迭代,但是我希望有一种方法可以在一个块中抓住它以保持清洁。此外,可能有也可能没有属性。会有很多项目,每个项目都有一大块HTML,但没有foo项目会包含另一个foo项目。

这一切都可能吗? 最后,我从Hpricot开始,但如果能有所作为,我对Nokogiri持开放态度。

1 个答案:

答案 0 :(得分:1)

我不清楚你遇到什么问题。

你可以用自己喜欢的方式传递hpricot html。

来自Readme

doc = Hpricot("<p>A simple <b>test</b> string.</p><foo>foo content</foo>")

你可以搜索foo并交换它

doc.search("//foo").first.swap "<blink>not foo</blink>"