Как я преобразовываю хеш Ruby в XML?

Используйте встроенное unichr - BeautifulSoup не необходим:

>>> entity = '&#x01ce'
>>> unichr(int(entity[3:],16))
u'\u01ce'
31
задан Peter Mortensen 2 July 2016 в 07:41
поделиться

4 ответа

ActiveSupport добавляет метод to_xml в Hash, поэтому вы можете довольно близко подойти к тому, что ищете, с помощью этого:

sudo gem install activesupport

require "active_support/core_ext"

my_hash = { :first_name => 'Joe', :last_name => 'Blow', :email => 'joe@example.com'}
my_hash.to_xml(:root => 'customer')

И в итоге получите:

<?xml version="1.0" encoding="UTF-8"?>
<customer>  
   <last-name>Blow</last-name>  
   <first-name>Joe</first-name>  
   <email>joe@example.com</email>
</customer>

Обратите внимание, что подчеркивания преобразованы в тире.

70
ответ дан 27 November 2019 в 21:44
поделиться

Если эти данные являются моделью, попробуйте переопределить to_xml .

В противном случае Builder - хороший вариант.

3
ответ дан 27 November 2019 в 21:44
поделиться

Я бы посоветовал такой драгоценный камень, как XmlSimple , который предоставляет такие возможности.

3
ответ дан 27 November 2019 в 21:44
поделиться

Некоторое время назад я сделал короткую презентацию именно на эту тему в моем университете. Здесь слайды (интересная часть начинается на> = стр. 37)

2
ответ дан 27 November 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: