আমি কীভাবে কোনও সিএসভি ফাইলকে এক্সএমএলে রূপান্তর করতে পারি?


8

আমি কীভাবে কোনও সিএসভি ফাইলকে এক্সএমএলে রূপান্তর করতে পারি?

উবুন্টুর জন্য কি কোনও সফটওয়্যার আছে?


আমি বুঝতে পারছি না। আপনি যে তিনটি ফর্ম্যাটটি উল্লেখ করেছেন তা হ'ল প্লেইন টেক্সট ফাইল --- পার্থক্যটি বিষয়বস্তুতে রয়েছে। এবং সুযোগ। আপনি একটি উদাহরণ যোগ করতে আপত্তি করবেন?
রোমানো

1
পুনরায় খোলার জন্য ভোটদান। আমি এটিকে বেশ সহজবোধ্য এবং সহজ উত্তর হিসাবে বিবেচনা করি ;-)
রিনজউইন্ড

1
আমি রিনজুইন্ডকে সমর্থন করি, কারণ আমি কেবল এমন সফ্টওয়্যারকে জিজ্ঞাসা করেছি যা রূপান্তর করতে পারে।
ভিজিট মাজুকো

উত্তর:


7

উপর কমিউনিটি ওয়েব সাইট রূপান্তর সেখানে নামক একটি কমান্ড লাইন টুল একটি লিঙ্ক csv2xml । যেহেতু এটি অনিচ্ছাকৃত তাই আপনি অন্য কোনও বিকল্প চয়ন করতে চাইতে পারেন।

এছাড়া একটি জাভা টুল নামক উল্লেখ করা হয় csv2xml (: ওয়েবসাইট জার্মান রয়েছে সতর্কবাণী) এবং একটি কমান্ড লাইন টুল নামক FF-নিষ্কর্ষক

লিঙ্কটিতে পাইথন, পার্ল, পিএইচপি, এক্সএসএলটি-র উল্লেখ রয়েছে তবে এর অর্থ আপনাকে নিজেই রূপান্তরকারী কোড করা দরকার।


1
আমি প্রথম লিঙ্কে উল্লেখগুলি সাথে সামান্য আপডেট করেছি। আল্টোভা ( আল্টোভা ডটকম ) নামে একটি বাণিজ্যিক পণ্যও রয়েছে
রিনজুইন্ড

10

আপনি যখন csvফাইলটির ফর্ম্যাট এবং ফাইলে আপনার প্রয়োজনীয় কাঠামো জানেন তখন xmlরূপান্তর পরিচালনা করতে পারে এমন একটি স্ক্রিপ্ট তৈরি করা মোটামুটি সোজা।

ফাইলটি নিন simple.csv:

Jack,35,United States
Jill,22,United Kingdom

আপনি নিম্নলিখিত xmlফাইলটি তৈরি করতে পারেন :

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

নিম্নলিখিত স্ক্রিপ্ট সহ:

#!/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

এমনকি আপনি যদি আগে কখনও কোড করেননি, তবে আমি মনে করি এটি ব্যবহার করা এবং পরিবর্তন করা সহজ হওয়া উচিত। লুপটিতে ফাইলটি লাইন-বাই লাইন পড়া হয় while

IFSঅভ্যন্তরীণ ক্ষেত্র নির্দিষ্টকারী। IFS=$','ঘোষণা করে যে ক্ষেত্র বিভাজক মান কমা নয়। এটি কোনও সিএসভি ফাইলের জন্য আদর্শ, তবে ইনপুট ফাইলের ফর্ম্যাটের সাথে মিল রেখে এটি পরিবর্তন করা যেতে পারে।

-rআর্গুমেন্ট প্রাপ্ত করতে readকমান্ড বলা হয়েছে যে সব আপনার ডেটা অংশ হিসেবে বদলে নিম্নলিখিত বিশেষ অক্ষর পালাবার জন্য একটি হিসাবে আপনার ফাইল যে কোন ব্যাকস্ল্যাশ চিকিত্সা।

-a arryযুক্তি একটি অ্যারের (নামে আপনার ফাইলের প্রতিটি কলামের স্থাপন arry)। এই উদাহরণে কলামগুলি নাম, বয়স, দেশ। অন্য কথায় কমাগুলির মধ্যে মানগুলি। সুতরাং লাইনের প্রতিটি কলাম একটি অ্যারেতে সংরক্ষণ করা হয়।

তারপরে প্রয়োজনীয় পাঠ্যটি xmlকেবল মানগুলির চারপাশে আবৃত হয় এবং xmlলাইনটি আউটপুট ফাইলে সংযুক্ত থাকে echo


@ চাচস, যদি আপনি লাইনে ব্যবহৃত বিকল্পটি ব্যাখ্যা করেন তবে while IFS=$',' read -r -a arry এটি অন্যটির জন্য দরকারী। ধন্যবাদ।
আলহেলাল

নিবন্ধন করুন
chaskes

ডাবল কোট দ্বারা বেষ্টিত, ক্ষেত্রের মধ্যে কমাগুলি উপস্থিত হয়ে আপনি কীভাবে মোকাবেলা করবেন? ইনপুট ফাইলের "Somename, Jack"জায়গায় হিসাবে Jack?
muk.li

1
@ muk.li ইনপুট ফিল্ড বিভাজক (সাধারণত কমা) শুরু করা লাইনে চিহ্নিত করা হয়: যখন আইএফএস = $ ','। যাক বিভাজকটি একটি নক্ষত্র, আপনি একে এটিকে পরিবর্তন করবেন: $ '*'। সুতরাং, আপনার ক্ষেত্রে এটি '' '"হওয়া উচিত (একক উদ্ধৃতি, ডাবল উদ্ধৃতি, একক উদ্ধৃতি) fine এটি দুর্দান্ত কাজ করা উচিত, তবে শেলের মধ্যে উদ্ধৃতি দেওয়া জটিল হতে পারে, এবং এটি পরীক্ষা করার আমার কোনও সুযোগ ছিল না।
17 ই

1

সিএসভি থেকে এক্সএমএল রূপান্তর চ্যালেঞ্জের মোটামুটি ব্যবহারকারী-বান্ধব (যেমন, আমার মতো নাম্বারদের জন্য সহজ) সমাধান হ'ল একটি দুর্দান্ত ক্রস-প্ল্যাটফর্ম এক্সএমএল সম্পাদক যা এই বৈশিষ্ট্যটি অন্তর্নির্মিত রয়েছে use (আমি এটি উবুন্টু এবং ম্যাক ওএসএক্স 10.10.5 এর অধীনে ব্যবহার করেছি; এটিতে উইন্ডোজ এক্সিকিউটেবলও রয়েছে))

XMLSpear

উল্লিখিত হিসাবে, এটি একটি এক্সএমএল সম্পাদক, তবে এটির সিএসভি-থেকে-এক্সএমএল (এবং এক্সেল-টু-এক্সএমএল) এর প্রধান মেনুতে "আমদানি" অন্তর্ভুক্ত রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

এটি আমার জন্য একটি 31Mb সিএসভি ফাইল রূপান্তর করেছে (20,000 এন্ট্রিগুলির একটি লাইব্রেরি ডাটাবেস থেকে ডাম্প) প্রায় 15 সেকেন্ডে, আমাকে সংরক্ষণ এবং হস্তক্ষেপের জন্য একটি সুগঠিত এক্সএমএল ফাইল দিয়েছে।

সম্পাদক হিসাবে এটির অন্যান্য অনেক স্বাগত বৈশিষ্ট্য রয়েছে (উপরের লিঙ্কটিতে বিশদ)। আমি এর জন্য কোনও লাইসেন্সের উল্লেখ খুঁজে পাই না তবে এটি "README" এর অন্তর্ভুক্ত:

এক্সএমএসস্পিয়ারটি ব্যক্তিগত ব্যবহারের জন্য নিখরচায় সফ্টওয়্যার।
দয়া করে xmlspear@donkeydevelopment.com বা ফোরামে আপনার প্রতিক্রিয়া প্রেরণ করুন http://donkeydevelopment.com/forums

বাণিজ্যিক ব্যবহার গাধার উন্নয়নের দ্বারা অনুমোদিত হতে হবে।
"লাইসেন্সের অনুরোধ" বিষয়টি সহ কেবল xmlspear@donkeydevelopment.com এ একটি ইমেল প্রেরণ করুন।

রিডমিমে সহায়কভাবে একটি .ডেস্কটপ ফাইলের সামগ্রী অন্তর্ভুক্ত করা হয়।

উবুন্টু 18.04 এলটিএস (জিনোম) এর অধীনে আমার পক্ষে কাজটি ভাল হয়।


0

আমি একটি বড় ফ্যান BaseXযার মধ্যে মনে হচ্ছে একটি আমদানি করার ক্ষমতা রয়েছে:

http://docs.basex.org/wiki/CSV_Module


এটি উল্লেখ করতে পারে যে এটি একটি ওয়েব অ্যাপ্লিকেশন ব্যবহার করা, আপাতদৃষ্টিতে, সহজতর:

https://webapps.stackexchange.com/q/123959/24327

ব্রাউজারে কোন প্লাগইন বা এক্সটেনশনের পরিমাণ যা গুগল শিটের সাথে কাজ করে।

আমি আপনার ব্যথা অনুভব করছি কারণ এটি একটি আপাতদৃষ্টিতে সহজ ইউটিলিটি যা ভালভাবে, অ্যাপের মাধ্যমে উপলব্ধ হওয়া উচিত।


0

আমি আপনাকে বা কেউ পাইথনে কোড লেখার পরামর্শ দেব। পাইথন আপনার সমস্যা শিখতে এবং সহজেই সমাধান করা সহজ। এতে সিএসভি মডিউল এবং এক্সএমএল উভয়ই রয়েছে । আমার পরামর্শটি বিবেচনায় নিয়েছে যে এক্সএমএল উপাদানগুলির জন্য আপনার নিজের নিজস্ব নাম থাকতে পারে বা অন্যান্য জটিল প্রয়োজনীয়তা থাকতে পারে (যেমন শেষের সিএসভি কলামটি শেষের কিন্তু একটি কলামের বৈশিষ্ট্যে রূপান্তর করা)।

পাইথন সম্পর্কে অনলাইনে প্রচুর টিউটোরিয়াল রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.