How to add attribute to Nokogiri node?

Yuval Karmi picture Yuval Karmi · Sep 1, 2010 · Viewed 14.1k times · Source

I'm trying to add an attribute to an existing Nokogiri node. What I've done is this:

node.attributes['foobar'] = Nokogiri::XML::Attr.new('foo', 'bar')

But I get the error:

TypeError Exception: wrong argument type String (expected Data)

What is a Data data type, and how do I add an attribute to the Nokogiri object?

Thanks!

Answer

Greg Campbell picture Greg Campbell · Sep 1, 2010

I believe you should just need to use the []= method, i.e.

node['foo'] = 'bar'

You could also use node.set_attribute('foo', 'bar').