CSV থেকে XML

আপনার ডিভাইসেই চলে · আপনার ফাইল কখনও আপনার ডিভাইস ছেড়ে যায় না।

CSV দিন বা পেস্ট করুন, আর পান এমন XML যাতে একটা <root> এলিমেন্ট, প্রতিটা সারির জন্য একটা <item> আর প্রতিটা কলামের জন্য হেডারের নামে একটা করে ভেতরের এলিমেন্ট থাকে। বিভাজক নিজে থেকেই চেনা হয় (কমা, সেমিকোলন, ট্যাব, পাইপ), উদ্ধৃতিতে বসানো ঘর RFC 4180 মেনে পড়া হয়, আর শুরুতে UTF-8 BOM থাকলে সরানো হয়।

XML যেসব নাম এলিমেন্ট হিসেবে নিতে পারে না — ফাঁকা জায়গা, চিহ্ন বা সংখ্যা দিয়ে শুরু — সেগুলো আন্ডারস্কোর দিয়ে ঠিক করে নেওয়া হয় ("Unit price" হয় Unit_price), তাই ফলটা সবসময় well-formed। মানগুলো এলিমেন্টের ভেতরে লেখা হিসেবে বসে; কোনো অ্যাট্রিবিউট নেই, যাতে যেকোনো পার্সারের জন্য ডকুমেন্টটা সহজ থাকে।

ডাউনলোডের আগে প্রথম 200 লাইন দেখে নেওয়া যায়, আর পুরো কাজটা আপনার ডিভাইসেই হয়।

CSV থেকে XML: কীভাবে করবেন

  1. CSV ফাইল দিন, বা CSV লেখাটা পেস্ট করুন।
  2. বিভাজক স্বয়ংক্রিয় রাখুন বা বেছে নিন।
  3. «XML-এ কনভার্ট করুন» চেপে প্রিভিউ দেখুন।
  4. .xml ডাউনলোড করুন।

সমর্থিত ফরম্যাট ও সীমা

ইনপুট
CSV / TSV — ফাইল বা পেস্ট করা লেখা
আউটপুট
XML 1.0, UTF-8, <root><item>…</item></root>
পার্সিং
RFC 4180; বিভাজক নিজে থেকে চেনা
নাম
হেডারের নাম বৈধ এলিমেন্ট নামে বদলে নেওয়া হয়
যেখানে চলে
আপনার ব্রাউজারেই — আপলোড ছাড়া

যার জন্য নয়: নির্দিষ্ট স্কিমার XML বানানো (ব্যাংক, ট্যাক্স বা মার্কেটপ্লেসের ফরম্যাট) — এলিমেন্টের নাম আসে আপনার হেডার থেকে, স্কিমা থেকে নয়।

মান লেখা হয় CSV-তে ঠিক যেমন আছে

XML প্রতিটা মান রাখে লেখা হিসেবে, তাই সংখ্যা বা true-false আলাদা করে চেনায় কোনো লাভ নেই, আর এই পাতা সেই অপশন দেয়ও না। প্রতিটা মান লেখা হয় CSV-তে যেমন আছে: 1.50 থাকে 1.50, 1e3 থাকে 1e3, TRUE থাকে TRUE আর NULL শব্দটা থাকে NULL। ফাঁকা ঘর থেকে আসে ফাঁকা এলিমেন্ট, যেমন <note/>, আর 007-এর মতো সামনের শূন্য থেকে যায়।

হেডারের নাম কীভাবে এলিমেন্টের নাম হয়

আগে একই নামের আর ফাঁকা হেডার ঠিক করা হয়: name নামের দুটো কলাম হয় <name> আর <name_2>, আর ফাঁকা তৃতীয় হেডার হয় <column_3>। তারপর প্রতিটা নাম XML-এর জন্য বৈধ করা হয়। Total (USD) হয় Total__USD_, কারণ ফাঁকা জায়গা আর বন্ধনী আন্ডারস্কোর হয়ে যায়, আর 1st হয় _1st। হাইফেন আর ডট চলে, তাই e-mail থাকে e-mail, আর address.city ওই নামেই একটা এলিমেন্ট থাকে; ভেঙে ভেতরে-ভেতরে এলিমেন্ট হয় না। যেকোনো লিপির হেডার — যেমন বাংলা, আরবি বা চীনা — যেমন লেখা তেমনই থাকে।

যে দুটো হেডার শেষে একই নাম পায়, যেমন "a b" আর "a_b", দুটোই প্রতিটা <item>-এর ভেতরে <a_b> হিসেবে লেখা হয়। যে প্রোগ্রাম নাম ধরে এলিমেন্ট পড়ে, সে তখন শুধু প্রথমটা দেখতে পারে, তাই আগে CSV-তে একটার নাম বদলে নিন।

CSV কীভাবে পড়া হয়

লেখা পড়া হয় সেই নিয়মেই, যা CSV to JSON পাতায় (/csv-to-json) উদাহরণসহ ব্যাখ্যা করা আছে: উদ্ধৃতিচিহ্ন কীভাবে কাজ করে, বিভাজক কীভাবে খোঁজা হয়, ফাইলের এনকোডিং কীভাবে চেনা হয়, আর হেডারের চেয়ে বেশি বা কম ঘরের সারির কী হয়। XML-এ না-থাকা ঘর হয় ফাঁকা এলিমেন্ট। শেষ হেডারের পরের ঘরগুলোর কোনো এলিমেন্টের নাম নেই, তাই সেগুলো বাদ পড়ে, আর একটা বার্তা জানায় কতগুলো সারিতে এমন ছিল আর প্রথমটা কোথায়।

<root> আর <item> নাম দুটো বাঁধা। কোনো সিস্টেম অন্য নাম চাইলে, যেমন <customers> আর <customer>, ডাউনলোডের পর টেক্সট এডিটরে সেগুলো বদলে নিন; কাঠামোর আর কিছু বদলাতে হয় না।

সাধারণ জিজ্ঞাসা

কলামের নামে ফাঁকা জায়গা থাকলে?
আন্ডারস্কোর দিয়ে ঠিক করে নেওয়া হয় — "Unit price" হয়ে যায় Unit_price — যাতে XML বৈধ থাকে।
আমার ফাইল কি কোনো সার্ভারে আপলোড হয়?
না। পুরো কাজটা হয় আপনার ব্রাউজারেই, আপনার নিজের ফোন বা কম্পিউটারের ক্ষমতায়। ফাইল ডিভাইস ছেড়ে কোথাও যায় না। কোনো টুল একবার ব্যবহার করা হয়ে গেলে ইন্টারনেট ছাড়াও সেটা চলে — ভিডিও, লেখা চেনা আর ব্যাকগ্রাউন্ড সরানোর টুল প্রথমবার নিজের ইঞ্জিন এই সাইট থেকে নামিয়ে নেয়, তারপর ব্রাউজার সেটা রেখে দেয়।
সেমিকোলন দেওয়া CSV চলবে?
চলবে; বিভাজক নিজে থেকে চেনা হয়, আর চাইলে বেছেও দেওয়া যায়।
ব্যাংক বা ট্যাক্সের নির্দিষ্ট ফরম্যাট বানানো যাবে?
না। এলিমেন্টের নাম আসে আপনার হেডার থেকে, কোনো স্কিমা থেকে নয়।
বাংলা লেখা ঠিক থাকবে?
থাকবে; ফাইলটা UTF-8-এ লেখা হয়।

সম্পর্কিত টুল

স্প্রেডশিট ও ডেটা বিভাগে আরও

এই পাতা অন্য ভাষায়: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia