在R或python中是否存在通用/自动方式来解析具有其节点和属性的xml文件,自动生成用于存储该信息的mysql表,然后填充这些表。
答案 0 :(得分:5)
关于
R中是否存在通用/自动方式 解析xml文件及其节点和 属性,自动生成 用于存储的mysql表 信息然后填充那些 表。
答案是一个很好的旧是的,你可以,至少在R。
R的XML包可以使用data.frame
函数读取XML文档并在单个调用中返回R xmlToDataFrame()
类型。
RMySQL包可以在一个命令中将data.frame
个对象传送到数据库 - 包括需要的表创建---使用{{1在公共DBI后端为R定义的函数,由RMySQL为MySQL提供。
简而言之:两行可以做到这一点,因此您可以轻松地为自己编写一个新的辅助函数,并执行相应数量的错误检查。
答案 1 :(得分:4)
它们是三个独立的操作:解析,表创建和数据填充。你可以用python完成所有三个,但没有什么“自动”的。我认为这不容易。
例如,XML是分层的,SQL是关系的,基于集合的。我不认为为您遇到的每一个XML流获得良好的关系模式总是那么容易。
答案 2 :(得分:1)
有用于将XML读入R的XML包,以及用于将数据从R写入MySQL的RMySQL包。
两者之间有很多工作要做。 XML超越了像MySQL这样的RDBMS的范围,因此可以处理任何抛出的XML的东西要么是荒谬的复杂,要么是无用的。
答案 3 :(得分:0)
我们有时会在工作中做这样的事情,但在python中却没有。在这种情况下,每次使用都需要编写自定义程序。我们只有SAX解析器可用。使用XML解码器在一个步骤中获取字典/哈希将有很大帮助。
至少你必须告诉它哪些标签映射到表和字段,没有预先存在的lib可以知道......