2012-12-12 55 views
13

Chúng tôi có một loạt các file XML, sau một schema mà thực chất là một hình thức cơ sở dữ liệu tuần tự:Cách tự động để chuyển đổi các tệp XML sang cơ sở dữ liệu SQL?

<table1> 
    <column1>value</column1> 
    <column2>value</column2> 
</table1> 
<table1> 
    <column1>another value</column1> 
    <column2>another value</column2> 
</table1> 
... 

Có cách nào thực sự dễ dàng để biến chúng thành một cơ sở dữ liệu SQL? Rõ ràng tôi có thể xây dựng lược đồ theo cách thủ công, xác định tất cả các bảng, các trường, v.v, và sau đó viết một kịch bản để nhập nó. Tôi tự hỏi liệu có bất kỳ công cụ nào có thể tự động hóa một số hoặc tất cả quy trình đó không?

+1

nào SQL là nó? Một số, như Oracle, cung cấp hỗ trợ cho việc nhập XML vào một bảng. – wallyk

+0

Oh. Hoặc là Postgres hoặc MySQL - không phiền phức. (Nhưng không có gì thương mại.) –

Trả lời

12

Đối với Mysql xin vui lòng xem LOAD XML SyntaxDocs.

Nó sẽ làm việc mà không cần bất kỳ chuyển đổi XML bổ sung cho XML bạn đã cung cấp, chỉ cần chỉ định định dạng và xác định các bảng bên trong cơ sở dữ liệu trực tiếp với phù hợp với tên cột:

LOAD XML LOCAL INFILE 'table1.xml' 
    INTO TABLE table1 
    ROWS IDENTIFIED BY '<table1>'; 

Ngoài ra còn có một câu hỏi liên quan :

Đối với PostgreSQL tôi không biết.

1

Có một project on CodeProject giúp đơn giản hóa việc chuyển đổi tệp XML thành SQL Script. Nó sử dụng XSLT. Bạn có thể sửa đổi nó để tạo DDL.

Và Xem câu hỏi này quá: Generating SQL using XML and XSLT

+0

Tuyệt vời, đó là một điểm khởi đầu thực sự hữu ích. Googling cho phần DDL lần lượt này: http://xml2ddl.berlios.de/ –

+0

@steve liên kết đó đã chết, bạn có thể đưa tôi đến dự án hiện tại hay bất cứ nơi nào bạn có thể tìm ra giải pháp tốt hơn. Cảm ơn! –

+2

@JeffPuckettII Tôi steve nhưng [Tôi đã tìm thấy một ngã ba của nó trên git hub] (https://github.com/charlesnagy/xml2ddl) –

2

Nếu có tập tin XML với 2 bảng khác nhau sau đó sẽ:

LOAD XML LOCAL INFILE 'table1.xml' INTO TABLE table1 
LOAD XML LOCAL INFILE 'table1.xml' INTO TABLE table2 

việc

+3

Tất cả các phương pháp này yêu cầu bạn phải xây dựng bảng theo cách thủ công trước. –

Các vấn đề liên quan