【问题标题】:Convert XML into a Dataset将 XML 转换为数据集
【发布时间】:2009-11-04 17:54:56
【问题描述】:

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

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

我不知道该怎么做,我欢迎高水平和低水平的贡献。

【问题讨论】:

    标签: ruby-on-rails xml ruby database


    【解决方案1】:

    xmlsimple 可以将您的 xml 转换为 Ruby 对象(或嵌套对象),然后您可以查看并做任何您喜欢的事情。使在 Ruby 中工作 XML 变得非常容易。正如 Jim 所说,这取决于您的 XML 复杂性和您的需求。

    【讨论】:

    • xmlsimple 非常有用,感谢您的建议。我正在使用它将 XML 转换为 Ruby 对象,然后 Sequel 暂时将它们输入数据库(此时不想处理 AR)。
    • 很高兴你发现它很有用,当我第一次发现它时我就喜欢它。一个聪明的工具包
    【解决方案2】:

    有三种基本方法:

    1. 使用 ruby​​ 的 xml 流解析工具通过 ruby​​ 代码处理数据并将适当的行写入数据库。
    2. 使用 xslt 将 xml 转换为非 XML 流格式,并将其输入到更新数据库的 ruby​​ 程序中
    3. 使用 xslt 将 xml 转换为批量加载工具可接受的格式,适用于您使用的任何数据库。

    只有您可以根据 XML 架构的复杂性和您必须执行的映射类型来确定最佳方法才能将其转换为关系格式。

    如果您可以发布您必须填充的 XML 和 DB 模式的示例,这可能会有所帮助。

    【讨论】:

      【解决方案3】:

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

      您可以使用它加载 XML,并通过节点迭代您可以创建您的 AR 对象。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 2012-01-13
            • 1970-01-01
            • 1970-01-01
            • 2011-01-06
            • 1970-01-01
            • 2011-09-07
            • 2022-01-20
            • 2021-03-25
            相关资源
            最近更新 更多