XML থেকে CSV কনভার্শন কীভাবে কাজ করে
XML-এ ডেটা প্রায়ই রিপিটেড এলিমেন্ট হিসেবে থাকে — যেমন একটি কনটেইনারের ভেতরে একাধিক item। এই টুল আপনাকে যে রিপিটিং নোড একটি রেকর্ড বোঝায় তা বেছে নিতে দেয়। প্রতিটি ম্যাচিং এলিমেন্ট একটি CSV রো হয়, এবং ফিল্ডগুলো কলামে বের করা হয়। সবকিছু আপনার ব্রাউজারেই চলে, তাই কিছুই আপলোড বা স্টোর করা হয় না।
কখন এই টুল ব্যবহার করবেন
XML এক্সপোর্ট ও ইন্টিগ্রেশনে প্রচলিত, আর CSV স্প্রেডশিটে খুলতে ও অনেক সিস্টেমে ইমপোর্ট করতে সহজ। XML থেকে CSV কাজে লাগে যখন আপনার দরকার বিশ্লেষণ, ক্লিনআপ, বা সিম্পল ট্যাবুলার এক্সপোর্ট।
- স্প্রেডশিট: XML এক্সপোর্ট Excel, Google Sheets বা Numbers-এ খুলুন।
- ইমপোর্ট: XML → CSV করে রো/কলাম সাপোর্ট করা টুলে দিন।
- ডেটা রিভিউ: টেবিল ফরম্যাটে রেকর্ড দ্রুত দেখা ও ফিল্টার করা।
- অটোমেশন: নেস্টেড XML হ্যান্ডেল না করা পাইপলাইনের জন্য ফ্ল্যাট CSV তৈরি।
“রিভার্স” (CSV → XML) দরকার? আমাদের CSV থেকে XML কনভার্টার ব্যবহার করুন। JSON ফরম্যাট দরকার হলে XML থেকে JSON কনভার্টার ব্যবহার করুন।
ফ্ল্যাটেনিং রুলস
- রো: আপনার বেছে নেওয়া রিপিটিং নোডের প্রতিটি ম্যাচিং এলিমেন্ট একটি রো হবে।
- চাইল্ড এলিমেন্ট: লিফ (leaf) চাইল্ড এলিমেন্টের টেক্সট ভ্যালু কলাম হবে।
- নেস্টেড এলিমেন্ট: নেস্টেড ফিল্ডগুলো পথ-ধাঁচের কলাম নামে ফ্ল্যাট হয় (উদাহরণ:
address_street)। - অ্যাট্রিবিউট: অন্তর্ভুক্ত হলে, অ্যাট্রিবিউটগুলো
@প্রিফিক্সসহ কলাম হবে (উদাহরণ:@id)। - রিপিটেড চাইল্ড ট্যাগ: বারবার আসা ভ্যালুগুলো CSV-বান্ধব রাখতে এক সেলে
|দিয়ে জোড়া হয়। - মিসিং ফিল্ড: অনুপস্থিত ভ্যালু খালি রাখা হয় যাতে রো অ্যালাইন থাকে।
ধাপে ধাপে: XML থেকে CSV
কয়েক সেকেন্ডেই আপনার XML কনভার্ট হবে:
- XML ফাইল যোগ করুন। উপরের বক্সে ড্র্যাগ-ড্রপ করুন বা ক্লিক করে ডিভাইস থেকে নিন।
- রিপিটিং নোড বাছুন। অটো ডিটেক্ট ব্যবহার করুন বা যে এলিমেন্টটি একটি রেকর্ড বোঝায় সেটি বেছে নিন।
- এক্সপোর্ট অপশন দিন। ডেলিমিটার, কলাম মোড, এবং হেডার থাকবে কি না সেট করুন।
- CSV-তে রূপান্তর করুন। CSV-তে রূপান্তর করুন ক্লিক করুন। সবকিছু লোকালি প্রসেস হয়।
- আউটপুট সেভ করুন। একে একে সেভ করুন বা প্রস্তুত হলে “সব সেভ করুন” ব্যবহার করুন।
প্রাইভেসি, সীমা এবং এই টুল আপনার ফাইল কীভাবে হ্যান্ডেল করে
FileYoga একটি সহজ নিয়ম মেনে চলে: আপনার ফাইল আপনার কাছেই থাকে। XML থেকে CSV রূপান্তর লোকালি আপনার ব্রাউজারে হয়, তাই আপনার ডেটা কখনো FileYoga সার্ভারে আপলোড হয় না।
শুধু লোকাল কনভার্শন
রূপান্তর আপনার ডিভাইসের ব্রাউজারেই চলে। আপনার XML আপলোড হয় না, এবং CSV আউটপুট আপনার দিকেই তৈরি হয়।
কোনো লুকানো কপি নেই
আপনি তালিকা পরিষ্কার করলে বা ট্যাব বন্ধ করলে, টুল আপনার ফাইল ব্যবহার বন্ধ করে এবং সার্ভারে কোনো কপি রাখে না।
কৃত্রিম সীমা নেই
কোনো পেওয়াল বা কোটা নেই। সীমা আসে শুধু আপনার ডিভাইসের মেমরি এবং ব্রাউজার থেকে।
অ্যাকাউন্ট লাগে না
সাইন আপ ছাড়াই ব্যবহার করুন। পেজ খুলুন, কনভার্ট করুন, কাজ শেষ হলে বের হয়ে যান।
ভালো ফলের জন্য টিপস
- অটো ডিটেক্ট ভুল নোড বাছলে, যে এলিমেন্টটি একটি রেকর্ড বোঝায় সেটি বেছে নিন (product, item, row, entry)।
- আপনার XML-এ namespace থাকলেও সাধারণত সমস্যা হয় না — টুল নাম অনুযায়ী ম্যাচ করার চেষ্টা করে।
- ID ইত্যাদি অ্যাট্রিবিউট দরকার হলে Columns-এ অ্যাট্রিবিউট অন্তর্ভুক্ত করুন।
- খুব বড় XML হলে একবারে একটি ফাইল কনভার্ট করুন, মেমরি চাপ কমবে।
ট্রাবলশুটিং
- রিপিটিং নোড পাওয়া যায়নি: আপনার XML-এ রিপিটেড এলিমেন্ট নাও থাকতে পারে। অন্য নোড বাছুন বা ফাইলে একাধিক রেকর্ড আছে কি না দেখুন।
- CSV ফাঁকা: বেছে নেওয়া রিপিটিং নোডটি XML-এ নেই। অটো ডিটেক্ট বা অন্য অপশন চেষ্টা করুন।
- কলাম অসম্পূর্ণ: ডেটা নেস্টেড হতে পারে। টুল পাথ ফ্ল্যাট করে, তবে খুব জটিল স্ট্রাকচারে আলাদা এক্সপোর্ট লাগতে পারে।
- ভ্যালু | দিয়ে জোড়া: কিছু চাইল্ড ট্যাগ রিপিট হয়। এক রো-তে রাখতে টুল এগুলো জোড়া দেয়।
- ট্যাব হ্যাং: খুব বড় বা গভীরভাবে নেস্টেড XML মেমরি সীমা ছুঁতে পারে। একবারে একটি ফাইল কনভার্ট করুন এবং অন্য ভারী ট্যাব বন্ধ করুন।
প্রশ্নোত্তর (FAQ)
না। XML থেকে CSV কনভার্শন আপনার ব্রাউজারেই লোকালি চলে। আপনার ফাইল কখনও FileYoga সার্ভারে আপলোড হয় না, এবং CSV আউটপুট আপনার ডিভাইসেই তৈরি হয়।
রিপিটিং নোড হলো সেই XML এলিমেন্ট যা একটি রেকর্ড বোঝায় এবং বহুবার আসে (যেমন item,
product, entry, বা row)। প্রতিটি ম্যাচিং এলিমেন্ট একটি CSV রো হয়।
সঠিক নোড বাছলে আপনি “এক রেকর্ড = এক রো” ফল পাবেন।
অটো ডিটেক্ট XML স্ট্রাকচার স্ক্যান করে এবং যে এলিমেন্টগুলো বারবার রিপিট হয় সেগুলো খুঁজে বের করে। এটি এমন নোডকে প্রাধান্য দেয় যা রেকর্ডের মতো দেখায় (চাইল্ড এলিমেন্ট, অ্যাট্রিবিউট, বা অর্থপূর্ণ টেক্সট থাকে)। অনুমান ভুল হলে, তালিকা থেকে ম্যানুয়ালি সঠিক নোড বেছে নিন।
হ্যাঁ — যদি আপনি “চাইল্ড এলিমেন্ট + অ্যাট্রিবিউট” (অথবা “শুধু অ্যাট্রিবিউট”) নির্বাচন করেন।
অ্যাট্রিবিউট কলামগুলোতে @ মার্কার থাকে (যেমন product_@id)।
নেস্টেড ফিল্ডগুলো আন্ডারস্কোর দিয়ে এক লাইনের কলাম নামে ফ্ল্যাট হয়, যেমন address_street।
লিফ টেক্সট ভ্যালুগুলো সেলের ভ্যালু হয়। এতে স্প্রেডশিট ও ইমপোর্টে CSV ব্যবহারযোগ্য থাকে।
এটা হয় যখন একটি রেকর্ডের ভেতরে কোনো ফিল্ড বারবার আসে (যেমন একাধিক ট্যাগ, ক্যাটেগরি, বা ইমেজ)।
এক রেকর্ড = এক রো রাখতে কনভার্টার রিপিটেড ভ্যালুগুলোকে | দিয়ে এক সেলে জোড়া দেয়।
যদি আপনার “প্রতি রিপিটেড ভ্যালু = আলাদা রো” দরকার হয়, তবে আলাদা এক্সপোর্ট স্ট্রাটেজি লাগতে পারে।
সাধারণত না। কনভার্টার এলিমেন্টকে লোকাল নামে ম্যাচ করে, তাই prefix বেশিরভাগ সময় সমস্যা করে না। যদি ভিন্ন namespace একই লোকাল নাম ব্যবহার করে, আরও স্পেসিফিক (গভীর পাথ) রিপিটিং নোড বেছে নিলে ফল পরিষ্কার হবে।
কমা ডিফল্ট। যেসব অঞ্চলে দশমিকের জন্য কমা ব্যবহার হয় সেখানে সেমিকোলন প্রচলিত। ট্যাব স্প্রেডশিটে কপি/পেস্টের জন্য ভালো। পাইপ কাজে লাগে যখন ডেটায় অনেক কমা থাকে।
কোনো কৃত্রিম সীমা নেই। খুব বড় বা গভীরভাবে নেস্টেড XML ব্রাউজারের মেমরি সীমা ছুঁতে পারে বা ডিভাইস ধীর হতে পারে। এমন হলে একবারে একটি ফাইল কনভার্ট করুন এবং অন্য ভারী ট্যাব বন্ধ করুন।