2009-12-15 88 views
0

有没有一种方法可以将一块html加载到一个Hpricot :: Doc对象中?加载一个html块的hpricot元素

我想从页面解析自定义标记中的各种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> 

我希望能够得到foo和它是一个角度来说,Hpricot ::文档对象中的内容,因为我会需要做一些额外的处理,并最终交换( ),以便foo及其所有子项在文档中被替换。

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

这是可能的吗? 最后,我开始使用Hpricot,但如果它能起作用,我可以向Nokogiri开放。

回答

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