我想从 HTML 页面(实际上是 tinymce 用户输入)中删除所有不符合特定条件(class = "int"或 class = "ext")的图像,我正在努力寻找正确的方法。这就是我目前所做的:
hbody = Hpricot(input)
@internal_images = hbody.search("//img[@class='int']")
@external_images = hbody.search("//img[@class='ext']")
但我不知道如何找到类具有错误值(不是“int”或“ext”)的图像。
我还必须遍历元素以检查非标准 html 的其他属性(我使用它们来设置内部值,例如我在属性 dbsrc 中设置的 DB id)。我也可以访问这些属性吗?有没有办法在某些元素(在 hpricot 搜索结果中)不符合我的条件时删除它们?
感谢您的帮助!
最佳答案
>> doc = Hpricot.parse('<html><img src="foo" class="int" /><img src="bar" bar="42" /><img src="foobar" class="int"></html>')
=> #<Hpricot::Doc {elem <html> {emptyelem <img class="int" src="foo">} {emptyelem <img src="bar" bar="42">} {emptyelem <img class="int" src="foobar">} </html>}>
>> doc.search("img")[1][:bar]
=> "42"
>> doc.search("img") - doc.search("img.int")
=> [{emptyelem img src"bar" bar"42"}]
一旦您从搜索中获得结果,您就可以使用正常的数组操作。非标准属性可通过 [] 访问。
关于ruby-on-rails - Hpricot 元素交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1058716/