代码之家  ›  专栏  ›  技术社区  ›  mariana soffer

分析XML文件并将其存储到数据库中

  •  3
  • mariana soffer  · 技术社区  · 15 年前

    在r或python中是否有一种通用/自动的方法来解析XML文件及其节点和属性,自动生成用于存储这些信息的mysql表,然后填充这些表。

    4 回复  |  直到 15 年前
        1
  •  5
  •   Dirk is no longer here    15 年前

    关于

    R中有通用/自动方式吗? 解析XML文件及其节点,以及 属性,自动生成 用于存储的mysql表 然后填充这些信息 桌子。

    答案是很古老的 是的,你可以 ,至少在 R

    这个 XML r的包可以读取XML文档并返回r data.frame 类型 在一次通话中 使用 xmlToDataFrame() 功能。

    以及 RMySQL 包裹可以传送 数据帧 对象到数据库 在一个命令中 ---必要时包括表创建---使用 dbWriteTable() 共同定义的函数 DBI R的后端,由提供给MySQL RMySQL .

    简而言之:有两行可以做到这一点,因此您可以轻松地编写一个新的助手函数来完成这一点,并进行相当数量的错误检查。

        2
  •  4
  •   duffymo    15 年前

    它们是三个独立的操作:解析、表创建和数据填充。您可以使用python完成这三项工作,但它没有“自动”功能。我觉得这不容易。

    例如,XML是分层的,SQL是关系的,基于集。我认为,对于您可能遇到的每个XML流,获得一个好的关系模式并不总是那么容易的。

        3
  •  1
  •   Spacedman    15 年前

    有用于将XML读取到R中的XML包,以及用于将R中的数据写入到MySQL中的r mysql包。

    两者之间有很多工作。XML超出了像MySQL这样的RDBMS的范围,因此能够处理任何向其抛出的XML的东西要么极其复杂,要么毫无用处。

        4
  •  0
  •   jambox    15 年前

    我们在工作中有时会这样做,但在Python中不会。在这种情况下,每次使用都需要编写一个自定义程序。我们只有一个SAX解析器可用。使用XML解码器在一个步骤中获取字典/哈希将有很大帮助。

    至少您必须告诉它哪些标记映射到表和字段,没有预先存在的lib可以知道…