XMLをMySQLテーブルに変換する


8

次の形式の大きな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>

~~~~~~~~~~

回答:


4

MySQLの場合、ExtractData関数を使用できます。

Windowsも使用している場合(ネットフレームワークが必要)、この古くて時代遅れのツールがまだ機能する可能性があります。

http://xmltodb.sourceforge.net/

私はこれを以前に使用したことがあり、XMLファイルをプレーンなINSERTコマンドに変換します。単純なXMLファイルの場合、実際に機能します。もちろん、INSERTコマンドには、dbフレーバーに応じた調整(変更 "または ')が必要ですが、実際のジョブの90%はツールで行われます。

XMLSpy http://www.altova.com/xmlspy/database-xml.htmlのような商用ツールも同様の機能を備えています(試用版を試すことができます)。

ファイルをMS Excelにインポートしてから、MySQLデータベースにインポートするためにCSVにエクスポートすることもできます。MS Excelには、XML属性とエンティティを列にマップできる優れた機能XMLマップがあります。私はそれをテストしましたが、あなたのような適切にフォーマットされたXMLで簡単に動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.