Nokogiri剥夺所有属性

时间:2014-12-21 23:58:15

标签: ruby nokogiri

我有这个HTML标记:

<div class="item"><a href="www"></a></div>

我希望得到这个:

<div><a></a></div>

我怎么能用Nokogiri做到?

2 个答案:

答案 0 :(得分:8)

require 'nokogiri'
doc = Nokogiri::HTML('<div class="item"><a href="www"></a></div>')
  1. 您可以按xpath删除所有属性:

    doc.xpath('//@*').remove
    
  2. 或者,如果您需要做一些更复杂的事情,有时可以更容易地遍历所有元素:

    doc.traverse do |node| 
      node.keys.each do |attribute|
        node.delete attribute
      end
    end
    

答案 1 :(得分:0)

除xml命名空间属性(xmlns =)之外的所有属性。您也可以通过doc.remove_namespaces轻松剥离它们! (包括感叹号,否则它不会真正删除它们)