Сведения о вопросе

PASHA

23:44, 15th August, 2020

Теги

xml   ruby   dtd    

Создание объектной модели в Ruby из XML DTD

Просмотров: 399   Ответов: 3

У меня есть документ XML с DTD, и я хотел бы иметь доступ к модели XML, что-то вроде этого:

title = Thing.Items[0].Title

Есть ли способ, в Ruby, для создания такого рода объектной модели на основе DTD? Или я застрял с помощью REXML?

Спасибо!



  Сведения об ответе

prince

19:23, 26th August, 2020

если вы включаете active_support gem (поставляется с rails), он добавляет метод from_xml к объекту Hash. Затем вы можете вызвать Hash.from_xml(xml_content) , и он вернет hash, который вы можете использовать для доступа к данным.

Я не знаю простого способа сопоставить xml объекту, но вы можете создать класс-оболочку, который делегирует вызовы метода базовому hash, который содержит данные.


  Сведения об ответе

padenie

09:05, 7th August, 2020

Я знаю, что этот вопрос был задан некоторое время назад, но если вы хотите истинный Thing.Items[0].Формат типа заголовка, все, что вам нужно сделать, это использовать OpenStruct.

require 'rubygems'
require 'activesupport' # For xml-simple
require 'ostruct' 

h = Hash.from_xml File.read('some.xml')
o = OpenStruct.new h
o.thing.items[0].title 


  Сведения об ответе

ASSembler

00:26, 9th August, 2020

Вы можете использовать ruby версию xml-simple.

Вам не нужно устанавливать gem, поскольку я считаю, что он уже установлен с rails. http://xml-simple.rubyforge.org/


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться