টুল
গাইড

XML ফরম্যাটার ও মিনিফায়ার

ফরম্যাট

fast-xml-parser দিয়ে XML সুন্দর করুন বা সংকুচিত করুন। ইনডেন্টেশন, অ্যাট্রিবিউট এবং সেলফ-ক্লোজিং ট্যাগ স্বাভাবিক করে। বিশুদ্ধ XML প্রক্রিয়াকরণ — কোনো ফরম্যাট রূপান্তর নয়।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই

দূরবর্তী URL আনা হয় না; আপনার JSON সরাসরি পেস্ট করুন।

ইনপুট
আউটপুট
বামদিকে XML পেস্ট করুন, তারপর ফরম্যাট বা মিনিফাই বেছে নিন।
এই পৃষ্ঠায়

XML ফরম্যাটার কী?#

একটি XML ফরম্যাটার এমন একটি নথিকে পুনরায় প্রবাহিত করে যা তার কাঠামো হারিয়েছে — এক সারিতে ডাম্প করা একটি SOAP প্রতিক্রিয়া, একটি প্রক্সির মাধ্যমে টানা একটি RSS ফিড যা হোয়াইটস্পেস সংকুচিত করেছে, বা একটি টেক্সট বক্সে এডিট করা একটি কনফিগ ফাইল যা ইনডেন্টেশন সংরক্ষণ করেনি — এবং তা পুনরায় ইনডেন্ট করে যাতে এলিমেন্ট হায়ারার্কি দৃশ্যমান হয়। উল্টোটি, মিনিফাইং, প্রতিটি বাইট ইন্টার-ট্যাগ হোয়াইটস্পেস ছিনিয়ে নেয় যাতে নথিটি পরিবহনের জন্য যতটা সম্ভব ছোট হয়।

XML রাউন্ড-ট্রিপিংকে দেখায় তার চেয়ে কঠিন করে তোলে এই যে < এবং >-এ একটি নিষ্ঠাহীন ফাইন্ড-এবং-রিপ্লেস তথ্য ধ্বংস করে। এলিমেন্টের ক্রম, <?xml?> ডিক্লারেশন, মন্তব্য, <?xml-stylesheet?>-এর মতো প্রসেসিং নির্দেশনা, অ্যাট্রিবিউট ক্রম, এবং <a></a> এবং <a/>-এর মধ্যে পার্থক্য — সবই অর্থ বহন করে। এই পৃষ্ঠাটি fast-xml-parser preserve-order মোডে ব্যবহার করে, যা নথিটিকে একটি ক্রমানুসার গাছে পার্স করে এবং বিশ্বস্তভাবে পুনর্নির্মাণ করে — তাই ফরম্যাটিং হলো আপনার নথির একটি নরমালাইজড ভিউ, পুনরায় সাজানো নয়। এটিও এই টুলটিকে JSON/XML কনভার্টার থেকে আলাদা করে: এটি বিশুদ্ধ XML-to-XML রাউন্ড-ট্রিপিং করে, কখনো ডেটা ফরম্যাট পরিবর্তন না করে।

ব্যবহারবিধি#

  1. বাঁদিকের ইনপুট পেইনে আপনার XML পেস্ট করুন। প্লেসহোল্ডারটি একটি ন্যূনতম <?xml?> নথি দেখায় যদি আপনার একটি শুরুর পয়েন্ট প্রয়োজন হয়, বা নমুনা ক্লিক করুন।
  2. টুলবারে একটি মোড বোতাম বেছে নিন:
    • ফরম্যাট — পার্স করুন, তারপর ইনডেন্টেশন এবং লাইন বিরতি সহ পুনর্নির্মাণ করুন। খালি এলিমেন্টগুলো সেলফ-ক্লোজিং ফর্মে সংকুচিত হয় (<a></a> হয়ে যায় <a/>), অ্যাট্রিবিউটগুলো সংরক্ষিত হয়, মন্তব্য এবং ডিক্লারেশন টিকে থাকে।
    • মিনিফাই — পার্স করুন, তারপর কোনো ইন্টার-ট্যাগ হোয়াইটস্পেস বা শেষের নিউলাইন ছাড়াই একটি একক কম্প্যাক্ট লাইন হিসেবে পুনর্নির্মাণ করুন।
  3. ফরম্যাট মোডে, একটি ইন্ডেন্ট বেছে নিন: , , বা ট্যাব
  4. আউটপুট পেইনে ফলাফল পড়ুন। হেডার অক্ষরে আউটপুট আকার দেখায়; এটি নিতে কপি ব্যবহার করুন। মুছুন উভয় পেইন রিসেট করে।

আপনার ইনপুট যদি সুগঠিত না হয় — একটি অনসমাপ্ত ট্যাগ, একটি বিচ্যুত & যা &amp; হওয়া উচিত — স্ট্যাটাস বার একটি বেস্ট-এফর্ট সারি এবং কলাম সহ ত্রুটি রিপোর্ট করে, যাতে আপনি একটি খালি আউটপুটের দিকে তাকিয়ে না থেকে সমস্যাটি খুঁজে পান।

মূল বৈশিষ্ট্য#

  • বিশ্বস্ত রাউন্ড ট্রিপ। preserve-order পার্সিং ফরম্যাট/মিনিফাই চক্র জুড়ে নথির ক্রম, <?xml?> ডিক্লারেশন, মন্তব্য এবং প্রসেসিং নির্দেশনা রাখে।
  • উভয় মোড একটি পার্সার শেয়ার করে। ফরম্যাট এবং মিনিফাই অভিন্নভাবে পার্স করে; তারা শুধুমাত্র ভিন্নভাবে আউটপুট দেয় যেভাবে বিল্ডার টেক্সট নির্গত করে। তাই মিনিফাই সফল হলে, ফরম্যাটও হবে, এবং উল্টোটাও।
  • সেলফ-ক্লোজিং নরমালাইজেশন। <a></a>-এর মতো খালি এলিমেন্টগুলো <a/>-এ সংকুচিত হয়, যা ক্যানোনিক্যাল কম্প্যাক্ট ফর্ম এবং diff করার সময় হোয়াইটস্পেস পার্থক্যগুলো স্পষ্ট করে তোলে।
  • মানগুলো স্ট্রিং থাকে। পার্সারটি parseTagValue: false দিয়ে কনফিগার করা, তাই true-এর একটি টেক্সট নোড স্ট্রিং "true" থাকে এবং 007 থাকে "007"। কোনো নীরব টাইপ রূপান্তর নেই যা ফেরার পথে আপনাকে অবাক করবে।
  • বড় ইনপুটগুলো মূল থ্রেড থেকে দূরে সামলায়। 1 MB-এর বড় নথিগুলো একটি Web Worker-এর মাধ্যমে রুট করা হয়, তাই পার্স করার সময় পৃষ্ঠাটি প্রতিক্রিয়াশীল থাকে। ছোট ইনপুটগুলো ইনলাইন চলে।
  • কঠোরভাবে ক্লায়েন্ট-সাইড। পার্সার পৃষ্ঠায় বান্ডল করা; আপনার XML কখনো ব্রাউজার ছাড়ে না।

ব্যবহারিক উদাহরণ#

দুটি সারিতে ঠাসা একটি ছোট কনফিগারেশন নথি:

ইনপুট:

<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"></feature></config>

স্পেস সহ ফরম্যাট ক্লিক করুন:

<?xml version="1.0"?>
<config>
  <server host="example.com" port="443"/>
  <feature name="cache"/>
  <feature name="logs"/>
</config>

দুটি জিনিস দাঁড়িয়ে যায়। <?xml version="1.0"?> ডিক্লারেশনটি নথির শীর্ষে রাউন্ড ট্রিপ টিকে আছে। এবং <feature name="logs"></feature> এবং ইতিমধ্যে-সেলফ-ক্লোজিং <feature name="cache"/> উভয়ই এখন <feature name="logs"/> হিসেবে দেখা যায় — খালি এলিমেন্টগুলো সেলফ-ক্লোজিং ফর্মে নরমালাইজ করা হয়েছে, তাই একই আকৃতির দুটি ফিচার আসলে একই রকম দেখায়। মূল ইনপুটে মিনিফাই ক্লিক করুন এবং আপনি পরিবহন ফর্ম পান:

<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"/></config>

প্রসাধনমূলক হোয়াইটস্পেসের প্রতিটি বাইট চলে গেছে, কিন্তু <server>-এ অ্যাট্রিবিউট ক্রম অস্পর্শিত এবং ডিক্লারেশনটি এখনও সেখানে আছে।

প্রশ্নোত্তর#

এই টুল এবং JSON/XML কনভার্টারের মধ্যে পার্থক্য কী?#

এই টুলটি হলো XML ইন, XML আউট — এটি একটি XML নথিকে বিউটিফাই বা মিনিফাই করে এবং আপনাকে XML ফিরিয়ে দেয়। এই সাইটের JSON/XML কনভার্টার দুটি ফরম্যাটের মধ্যে অনুবাদ করে, XML-কে একটি JSON অবজেক্ট গাছে বা উল্টোটা রূপান্তর করে। এই পৃষ্ঠাটি ব্যবহার করুন যখন আপনি একই ফরম্যাট চান, শুধু আরও ভালো আকৃতিতে; কনভার্টার ব্যবহার করুন যখন আপনি আসলে ফরম্যাট পরিবর্তন করতে চান।

ফরম্যাটিং কি আমার মন্তব্য সংরক্ষণ করে?#

হ্যাঁ। পার্সিংয়ের সময় মন্তব্যগুলো ক্রমানুসার গাছে ধরা হয় এবং বিল্ডার দ্বারা পুনরায় নির্গত হয়, তাই <!-- note --> ফরম্যাট এবং মিনিফাই উভয়কেই টিকে থাকে। প্রসেসিং নির্দেশনা <?xml-stylesheet?>-ও সংরক্ষিত।

ত্রুটির অবস্থান কেন কখনো আনুমানিক?#

অন্তর্নিহিত পার্সার প্রতিটি ব্যর্থতা মোডের জন্য ক্যারেক্টার অবস্থান প্রকাশ করে না, তাই কিছু ত্রুটির জন্য এই পৃষ্ঠাটি পার্সারের বার্তা থেকে বের করা একটি বেস্ট-এফর্ট সারি এবং কলাম রিপোর্ট করতে পারে। একটি অনুপস্থিত ক্লোজ ট্যাগের জন্য অবস্থানটি সাধারণত নির্ভুল; আরও বিরল পার্স ব্যর্থতার জন্য এটি সারি 1-এ ডিফল্ট হতে পারে। ত্রুটি বার্তাটি নিজেই সর্বদা সম্পূর্ণ দেখানো হয়, যা সাধারণত ত্রুটিস্থল খুঁজে পাওয়ার জন্য যথেষ্ট।

এটি কি অনেক বড় XML ফাইল সামলাতে পারে?#

হ্যাঁ, আপনার ব্রাউজারের মেমরি সীমা পর্যন্ত। 1 MB-এর উপরের ইনপুটগুলো একটি Web Worker-এর ভেতরে পার্স করা হয় যাতে UI ফ্রিজ না করে। শত শত মেগাবাইটের নথির জন্য, পার্সিংয়ে লক্ষণীয় সময় এবং মেমরি লাগবে বলে আশা করুন — এটি একটি ব্রাউজার টুল, একটি স্ট্রিমিং সার্ভার নয়।