Генерация объектной модели в Ruby из XML DTD

StackOverflow https://stackoverflow.com/questions/28293

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть документ XML с DTD, и мне бы хотелось иметь доступ к модели XML, примерно так:

title = Thing.Items[0].Title

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

Спасибо!

Это было полезно?

Решение

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

Вам не нужно устанавливать драгоценный камень, поскольку я считаю, что он уже установлен с помощью рельсов.http://xml-simple.rubyforge.org/

Другие советы

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

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

Я знаю, что этот вопрос был задан некоторое время назад, но если вам нужен настоящий формат типа Thing.Items[0].Title, все, что вам нужно сделать, это использовать 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 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top