将XML转换为数据集

时间:2009-11-04 17:54:56

标签: ruby-on-rails xml ruby database

我正在尝试将XML文档转换为可以导入到我可以查询的数据库(如SQLite或MySQL)的数据集。

这是一个XML文件,它包含了属性中的大部分内容。这是Rails项目的一部分,所以我非常倾向于使用Ruby(这是我目前最熟悉的语言)。

我不确定如何做到这一点,我欢迎高水平和低水平的贡献。

5 个答案:

答案 0 :(得分:1)

有三种基本方法:

  1. 使用ruby的xml流解析工具使用ruby代码处理数据,并将适当的行写入数据库。
  2. 使用xslt将xml转换为非XML流格式,并将其提供给更新数据库的ruby程序
  3. 使用xslt将xml转换为批量加载工具可接受的格式,无论您使用何种数据库。
  4. 只有您可以确定最佳方法,具体取决于XML架构的复杂性以及为使其成为关系格式而必须执行的映射类型。

    如果你可以发布一个XML样本和你必须填充的数据库模式,这可能会有所帮助。

答案 1 :(得分:1)

xmlsimple可以将您的xml转换为Ruby对象(或嵌套对象),然后您可以查看并执行任何您喜欢的操作。使Ruby中的XML工作非常简单。正如Jim所说,这取决于您的XML复杂性和您的需求。

答案 2 :(得分:0)

它会加载模型数据吗?如果您在* nix上,请查看libxml-ruby。 =)

有了它,您可以加载XML,并通过您可以创建AR对象的节点进行迭代。

答案 3 :(得分:0)

您可以查看XMLMapping gem。它允许您根据XML的结构定义不同的classes。现在您可以从这些类创建对象。

现在您必须编写一些实际将这些XMLMapping对象转换为ActiveRecord对象的模块。一旦转换为AR对象,您只需调用save将这些对象保存到相应的表中即可。

这是一个很长的解决方案,但它可以让您从XML中创建对象而无需迭代它。 XMLMapping将为您完成。

答案 4 :(得分:0)

您是否考虑过将数据加载到XML database

在不知道数据结构是什么的情况下,我不知道RDBMS相对于XML DB的好处是什么。