【发布时间】:2009-11-04 17:54:56
【问题描述】:
我正在尝试将 XML 文档转换为可以导入数据库(如 SQLite 或 MySQL)的数据集,以便从中查询。
它是一个 XML 文件,其中包含属性中的大部分内容。这是 Rails 项目的一部分,所以我非常倾向于使用 Ruby(这是我目前最熟悉的语言)。
我不知道该怎么做,我欢迎高水平和低水平的贡献。
【问题讨论】:
标签: ruby-on-rails xml ruby database
我正在尝试将 XML 文档转换为可以导入数据库(如 SQLite 或 MySQL)的数据集,以便从中查询。
它是一个 XML 文件,其中包含属性中的大部分内容。这是 Rails 项目的一部分,所以我非常倾向于使用 Ruby(这是我目前最熟悉的语言)。
我不知道该怎么做,我欢迎高水平和低水平的贡献。
【问题讨论】:
标签: ruby-on-rails xml ruby database
xmlsimple 可以将您的 xml 转换为 Ruby 对象(或嵌套对象),然后您可以查看并做任何您喜欢的事情。使在 Ruby 中工作 XML 变得非常容易。正如 Jim 所说,这取决于您的 XML 复杂性和您的需求。
【讨论】:
有三种基本方法:
只有您可以根据 XML 架构的复杂性和您必须执行的映射类型来确定最佳方法才能将其转换为关系格式。
如果您可以发布您必须填充的 XML 和 DB 模式的示例,这可能会有所帮助。
【讨论】:
它会加载模型数据吗?如果您在 *nix 上,请查看 libxml-ruby。 =)
您可以使用它加载 XML,并通过节点迭代您可以创建您的 AR 对象。
【讨论】:
您可以查看XMLMapping gem。它允许您根据 XML 的结构定义不同的classes。现在您可以从这些类创建对象。
现在您必须编写一些模块,将这些 XMLMapping 对象实际转换为 ActiveRecord 对象。将这些转换为 AR 对象后,您只需调用 save 即可将这些对象保存到相应的表中。
这是一个很长的解决方案,但它可以让您从 XML 创建对象而无需对其进行迭代。 XMLMapping 将为您完成。
【讨论】:
您是否考虑将数据加载到XML database?
在不知道数据结构的情况下,我不知道 RDBMS 相对于 XML DB 有什么好处。
【讨论】: