Mengubah XML ke tabel MySQL


8

Saya memiliki file XML besar dalam format berikut dan saya perlu mengubah file ini menjadi tabel MySQL. Tolong beri tahu saya bagaimana saya bisa melakukan ini?

~~~~~~~~~~

<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>

~~~~~~~~~~

Jawaban:


4

Untuk MySQL, Anda dapat menggunakan fungsi ExtractData.

Jika Anda juga menggunakan Windows (perlu Net Framework) maka alat yang lama dan usang ini mungkin masih melakukan pekerjaan.

http://xmltodb.sourceforge.net/

Saya telah menggunakannya di masa lalu dan itu mengkonversi file XML ke perintah INSERT polos. Untuk file XML sederhana itu benar-benar berfungsi. Tentu saja perintah INSERT akan membutuhkan penyesuaian (perubahan "atau ') sesuai dengan rasa db tetapi 90% dari pekerjaan aktual dilakukan dengan alat ini.

Alat komersial seperti XMLSpy http://www.altova.com/xmlspy/database-xml.html memiliki fungsi yang serupa (Anda dapat mencoba edisi uji coba).

Anda bahkan dapat mencoba mengimpor file ke MS Excel dan kemudian mengekspor ke CSV untuk mengimpor ke dalam database MySQL. MS Excel memiliki fitur peta XML yang bagus yang dapat memetakan atribut dan entitas XML ke kolom. Saya mengujinya dan itu akan dengan mudah bekerja dengan XML yang diformat dengan baik seperti milik Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.