Làm cách nào tôi có thể chuyển đổi tệp CSV thành XML?
Có phần mềm nào cho Ubuntu không?
Làm cách nào tôi có thể chuyển đổi tệp CSV thành XML?
Có phần mềm nào cho Ubuntu không?
Câu trả lời:
Trên trang web cộng đồng về chuyển đổi có một liên kết đến một công cụ dòng lệnh được gọi là csv2xml . Vì nó không rõ ràng, bạn có thể muốn chọn một tùy chọn khác.
Ngoài ra còn có đề cập đến một công cụ java có tên csv2xml (cảnh báo: trang web bằng tiếng Đức) và một công cụ dòng lệnh gọi là ff-extractor .
Liên kết cũng có các tham chiếu đến Python, Perl, PHP, XSLT nhưng điều đó có nghĩa là bạn cần tự viết mã trình chuyển đổi.
Khi bạn biết định dạng của csv
tệp và cấu trúc bạn cần trong xml
tệp, việc tạo một tập lệnh có thể xử lý chuyển đổi là khá đơn giản.
Lấy tập tin simple.csv
:
Jack,35,United States
Jill,22,United Kingdom
Bạn có thể tạo xml
tập tin sau :
<?xml version="1.0"?>
<Customers>
<Customer>
<Name>Jack</Name>
<Age>35</Age>
<Country>United States</Country>
</Customer>
<Customer>
<Name>Jill</Name>
<Age>22</Age>
<Country>United Kingdom</Country>
</Customer>
</Customers>
Với đoạn script sau:
#!/bin/bash
file_in="simple.csv"
file_out="simple.xml"
echo '<?xml version="1.0"?>' > $file_out
echo '<Customers>' >> $file_out
while IFS=$',' read -r -a arry
do
echo ' <Customer>' >> $file_out
echo ' <Name>'${arry[0]}'</Name>' >> $file_out
echo ' <Age>'${arry[1]}'</Age>' >> $file_out
echo ' <Country>'${arry[2]}'</Country>' >> $file_out
echo ' </Customer>' >> $file_out
done < $file_in
echo '</Customers>' >> $file_out
Ngay cả khi bạn chưa bao giờ được mã hóa trước đây, tôi nghĩ rằng điều này nên dễ sử dụng và sửa đổi. Các tập tin được đọc từng dòng trong while
vòng lặp.
IFS
là công cụ xác định trường nội bộ. Các IFS=$','
tuyên bố rằng giá trị của tách lĩnh vực là một dấu phẩy. Đây là tiêu chuẩn cho một tệp CSV, nhưng nó có thể được thay đổi khi cần để phù hợp với định dạng tệp đầu vào.
Đối -r
số của read
lệnh yêu cầu nó xử lý bất kỳ dấu gạch chéo ngược nào trong tệp của bạn như là một phần của dữ liệu của bạn chứ không phải là một lối thoát cho một ký tự đặc biệt sau.
Đối -a arry
số đặt mỗi cột của tệp của bạn vào một mảng (được đặt tên arry
). Các cột trong ví dụ này là tên, tuổi, quốc gia. Nói cách khác, các giá trị giữa các dấu phẩy. Vì vậy, mỗi cột trong dòng được lưu trữ trong một mảng.
Sau đó, văn bản cần thiết xml
chỉ được bọc xung quanh các giá trị và xml
dòng được nối vào tệp đầu ra với echo
.
while IFS=$',' read -r -a arry
, nó hữu ích cho người khác. Cảm ơn.
"Somename, Jack"
vị trí của Jack
trong tập tin đầu vào?
Một giải pháp khá thân thiện với người dùng (nghĩa là dễ dàng cho các số như tôi) cho thách thức chuyển đổi CSV sang XML là sử dụng trình soạn thảo XML đa nền tảng đẹp có tính năng này tích hợp sẵn. (Tôi đã sử dụng cả trên Ubuntu và Mac OSX 10.10.5; nó cũng có thể thực thi được Windows.)
Như đã đề cập, nó là một trình soạn thảo XML, nhưng nó bao gồm "nhập khẩu" từ XML sang XML (và Excel-to-XML) trên menu chính của nó:
Nó đã chuyển đổi một tệp CSV 31Mb cho tôi (kết xuất từ cơ sở dữ liệu thư viện gồm 20.000 mục) trong khoảng 15 giây, cho tôi một tệp XML được định dạng tốt để lưu và thao tác.
Là một biên tập viên, nó có nhiều tính năng đáng hoan nghênh khác (chi tiết tại liên kết, ở trên). Tôi không thể tìm thấy đề cập đến bất kỳ giấy phép nào cho nó, nhưng điều này được bao gồm trong "README":
XMLSpear là phần mềm miễn phí cho sử dụng cá nhân.
Vui lòng gửi phản hồi của bạn đến xmlspear@donkeydevelopment.com hoặc trên diễn đànhttp://donkeydevelopment.com/forums
.Sử dụng thương mại phải được sự chấp thuận của donkeydevelopment.
Chỉ cần gửi email đến xmlspear@donkeydevelopment.com với chủ đề "yêu cầu cấp phép".
Readme cũng hữu ích bao gồm các nội dung cho tệp .desktop.
Công việc có tốt với tôi theo Ubuntu 18.04 LTS (Gnome) không.
Tôi là một fan hâm mộ lớn BaseX
dường như có khả năng nhập khẩu:
http://docs.basex.org/wiki/CSV_Module
Có thể chỉ ra rằng, dường như, dễ dàng hơn để sử dụng một ứng dụng web:
https://webapps.stackexchange.com/q/123959/24327
Số tiền cho một plugin hoặc tiện ích mở rộng cho trình duyệt hoạt động với trang tính google.
Tôi cảm thấy nỗi đau của bạn bởi vì nó là một tiện ích có vẻ đơn giản, tốt, nên có sẵn thông qua apt.
Tôi sẽ đề nghị bạn hoặc ai đó viết mã bằng Python. Python rất dễ học và giải quyết vấn đề của bạn một cách dễ dàng. Nó có cả mô-đun CSV và mô-đun XML . Đề xuất của tôi xem xét rằng bạn có thể cần phải có tên riêng cho các thành phần XML hoặc có các yêu cầu phức tạp khác (như chuyển đổi cột CSV cuối cùng thành thuộc tính của cuối cùng nhưng một cột).
Có rất nhiều hướng dẫn trực tuyến về Python.