如何将传入的XML文件与现有的mysql数据同步

时间:2011-11-19 18:18:22

标签: php mysql xml perl parsing

供应商提供1MB XML文件,每分钟更新一次。我需要每分钟使用此信息更新我的数据库以获得最佳结果。

XML文件代表一个简单的平面表结构,我在mysql中重复了这个结构。

我的mysql表包含的数据多于XML文件(更多行和更多列)...尽管供应商对数据进行了更新,但我的信息必须保持持久。

XML和MySQL表共享相同的密钥,因此有一条明确的途径可以通过自定义代码来实现此更新......

我的问题是,是否有现有的库或工具可以处理大部分内容......

例如:  * MySQL功能  * PHP或Perl库。

我已经尝试了相当多的谷歌搜索...但我的关键字" mysql","解析"," xml"是如此常见,我最终得到了很多无关的结果......对于更好的搜索术语的想法也将受到赞赏。

2 个答案:

答案 0 :(得分:2)

当你说你“在mysql中重复”时,你的意思是你已经将整个XML文件存储在mysql表列中了吗?如果是这样,您可以尝试使用存储过程中的MySql XML functions来处理XML数据。

但使用PHP的SimpleXML可能要容易得多。您将使用PHP读取该文件,遍历SimpleXML结构中的数据以提取您要更新的数据,然后使用它来更新MySQL表中的相应行。

答案 1 :(得分:1)

数据不多,因此使用XML::Simple不会导致过多的内存消耗。它的工作原理是将XML数据转换为哈希值,然后可以用来填充数据库。

要访问和更新MySQL数据库,请将DBIXML::Simple生成的哈希结合使用。