有很多关于如何使用 Ruby 从文档中删除 HTML 标签的示例,Hpricot 和 Nokogiri 都有 inside_text 方法,可以轻松快速地为您删除所有 HTML。
我想做的恰恰相反,从 HTML 文档中删除所有文本,只留下标签及其属性。
我考虑过循环遍历文档,将inner_html设置为nil,但实际上你必须反向执行此操作,因为第一个元素(根)具有文档其余部分的inner_html,所以理想情况下我必须从最里面的元素并将inner_html设置为nil,同时向上移动到祖先。
有谁知道一个巧妙的小技巧可以有效地做到这一点?我在想也许正则表达式可以做到这一点,但可能不如 HTML 标记器/解析器那么有效。
这也有效:
doc = Nokogiri::HTML(your_html)
doc.xpath("//text()").remove
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)