将 XML 转换为 MySQL 表

Tec*_*hno 8 mysql xml

我有一个以下格式的大型 XML 文件,我需要将此文件转换为 MySQL 表。请让我知道我怎样才能做到这一点?

~~~~~~~~~~

<host starttime="1392325468" endtime="1392325486"><status state="up" reason="user-set"/>
<address addr="192.168.0.2" addrtype="ipv4"/>
<hostnames>
</hostnames>
<ports><extraports state="filtered" count="2">
<extrareasons reason="no-responses" count="2"/>
</extraports>
<port protocol="udp" portid="22"><state state="open|filtered" reason="no-response" reason_ttl="0"/><service name="ssh" method="table" conf="3"/></port>
<port protocol="udp" portid="123"><state state="open|filtered" reason="no-response" reason_ttl="0"/><service name="ntp" method="table" conf="3"/></port>
</ports>
</host>
Run Code Online (Sandbox Code Playgroud)

~~~~~~~~~~

Ale*_*ros 4

对于 MySQL,您可以使用 ExtractData 函数。

如果您也使用 Windows(它需要 Net Framework),那么这个旧的和过时的工具可能仍然可以完成这项工作。

http://xmltodb.sourceforge.net/

我过去曾使用过它,它将 XML 文件转换为普通的 INSERT 命令。对于简单的 XML 文件,它确实有效。当然,INSERT 命令需要根据数据库风格进行一些调整(更改“或'),但 90% 的实际工作是使用该工具完成的。

XMLSpy http://www.altova.com/xmlspy/database-xml.html等商业工具具有类似的功能(您可以尝试试用版)。

您甚至可以尝试将文件导入到 MS Excel,然后导出到 CSV 以导入到 MySQL 数据库中。MS Excel 有一个很好的功能 XML 映射,可以将 XML 属性和实体映射到列。我对其进行了测试,它可以轻松地与像您这样的格式良好的 XML 一起使用。