Nokogiri:查找标签,获取属性和替换标签



我和Nokogiri一起工作,我是新来的。我正在解析一个HTML文档来匹配一些占位符,匹配之后,我必须用一些生成的HTML替换小部件占位符。

我创建了这个方法:

doc = Nokogiri::HTML.fragment(raw)
matches = doc.xpath(".//widget")
if matches.present?
  matches.each do |match|
    media_replace(..)
else
  self.body = raw
end

我有一些匹配,每个匹配都有这个属性。

 matches.first.attributes
{"data_id"=>#(Attr:0x3fdd42e2cebc { name = "data_id", value = "5" }),
"data_type"=>#(Attr:0x3fdd42e2ce94 { name = "data_type", value = "gallery" })}

如何提取这些属性(gallery和5)以将它们传递给我的media_replace方法?Media_replace方法返回给我一个'html':我怎么能用返回的html替换每个'匹配' ?

要从节点获取属性值,可以使用[]方法。例如:

media_replace(match['data_id'], match['data_gallery'])

要替换节点,使用replaceswap方法(假设media_replace返回字符串或其他兼容对象):

new_html = media_replace(...)
match.replace(new_html)

相关内容

  • 没有找到相关文章

最新更新