Как добавить атрибут к узлу Nokogiri?

17

Я пытаюсь добавить атрибут к существующему узлу Nokogiri. Я сделал следующее:

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

Но я получаю ошибку:

TypeError Exception: wrong argument type String (expected Data)

Что такое тип данных Data и как добавить атрибут к объекту Nokogiri?

Спасибо!

    
задан Yuval Karmi 01.09.2010 в 03:32
источник

1 ответ

42

Я считаю, что вам просто нужно использовать метод [] = , т. е.

node['foo'] = 'bar'

Вы также можете использовать node.set_attribute('foo', 'bar') .

    
ответ дан Greg Campbell 01.09.2010 в 04:06
источник
  • спасибо, но это не работает. любые другие идеи? –  Yuval Karmi 01.09.2010 в 04:44
  • Это то, что говорят нокигири. Вы уверены, что ваш объект-узел на самом деле является Nokogiri :: XML :: Element? Какова была ошибка, когда вы сделали узел ['foo'] = 'bar'? –  wuputah 01.09.2010 в 05:24
  • на самом деле, вы правы - это была ошибка с моей стороны. greg - не возражаете ли вы редактировать и отправлять на свой вопрос, чтобы я мог его продвигать? благодаря! –  Yuval Karmi 01.09.2010 в 05:57
  • Выполнено. Я также связался с RDoc для рассматриваемого метода на Nokogiri :: XML :: Node. –  Greg Campbell 01.09.2010 в 18:41
  • Спасибо! Выбран и выбран в качестве правильного ответа :) –  Yuval Karmi 02.09.2010 в 22:44