Chuyển đổi bảng XML sang MySQL


8

Tôi có một tệp XML lớn theo định dạng sau và tôi cần chuyển đổi tệp này thành bảng MySQL. Xin vui lòng cho tôi biết làm thế nào tôi có thể thực hiện điều này?

~~~~~~~~~ ~

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

~~~~~~~~~ ~

Câu trả lời:


4

Đối với MySQL, bạn có thể sử dụng hàm ExtractData.

Nếu bạn cũng đang sử dụng Windows (nó cần Net Framework) thì công cụ cũ và lỗi thời này vẫn có thể thực hiện công việc.

http://xmltodb.sourceforge.net/

Tôi đã sử dụng nó trong quá khứ và nó chuyển đổi tệp XML thành các lệnh INSERT đơn giản. Đối với các tệp XML đơn giản, nó thực sự hoạt động. Tất nhiên, các lệnh của INSERT sẽ cần một số điều chỉnh (thay đổi "hoặc ') theo hương vị db nhưng 90% công việc thực tế được thực hiện với công cụ.

Các công cụ thương mại như XMLSpy http://www.altova.com/xmlspy/database-xml.html có chức năng tương tự (bạn có thể thử các phiên bản dùng thử).

Thậm chí, bạn có thể thử nhập tệp vào MS Excel và sau đó xuất sang CSV để nhập vào cơ sở dữ liệu MySQL. MS Excel có một bản đồ XML tính năng đẹp có thể ánh xạ các thuộc tính và thực thể XML thành các cột. Tôi đã thử nghiệm nó và nó sẽ dễ dàng hoạt động với một XML có định dạng tốt như của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.