将XML导入mySQL,具有相同的属性名称,用于多个节点级别

时间:2018-02-15 09:43:07

标签: mysql xml

我尝试使用LOAD XML函数将XML文件导入MYSQL表:

LOAD XML INFILE 'test.xml INTO TABLE edge_delete ROWS IDENTIFIED BY '<edge>';

XML文件的结构如下:

    <netstate xmlns:xsi=....>
<timestep time="2">
    <edge id="10">
        <lane id="10_0">
            <vehicle id="veh1" pos="4.60" speed="0.00"/>
        </lane>
    </edge>
</timestep>

问题: 所有节点级别都以属性“id”开头。导入不区分节点级别。 每个节点级别应该是我的sql表中的一个对应列:edge |车道|车辆编号| ...

谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

对我有用的解决方案: 使用python脚本替换&#34; id&#34;具有另一个属性字符串的属性(例如,使用&#34; edge&#34;)。该脚本替换了该字符串。也许不是最好和最有效的方法,但解决了问题。 现在我可以将XML文件的所有列导入mySQL表。

另一种解决方法:使用带有查找/替换功能的文本编辑器。 使用我为大型xml文件找到的工具无法正常工作&gt; 1GB。

脚本可以在这里找到:

https://studiofreya.com/2016/11/17/replace-string-in-xml-file-with-python/#comment-86628