XML পার্সার

XML ডকুমেন্ট তাৎক্ষণিকভাবে ফরম্যাট, ভ্যালিডেট ও কোয়েরি করুন। সর্বোচ্চ গতি ও প্রাইভেসির জন্য নেটিভ ব্রাউজার API দিয়ে চলে।

ফরম্যাট ও মিনিফাই XPath কোয়েরি ভ্যালিডেশন

XML পার্সার ব্যবহারের পদ্ধতি

1

আপনার XML পেস্ট করুন

আপনার XML কন্টেন্ট কপি করে ইনপুট ফিল্ডে পেস্ট করুন, অথবা নমুনা XML লোড করুন-এ ক্লিক করুন।

2

ফরম্যাট ও ভ্যালিডেট

সুন্দর করতে ফরম্যাট, সংকুচিত করতে মিনিফাই, এরর পরীক্ষা করতে ভ্যালিডেট ব্যবহার করুন।

3

XPath দিয়ে কোয়েরি

একটি XPath এক্সপ্রেশন লিখুন এবং নির্দিষ্ট নোড বের করতে XPath চালান-এ ক্লিক করুন।

XML কী?

XML (eXtensible Markup Language) একটি মার্কআপ ভাষা যা ডকুমেন্টকে এমন ফরম্যাটে এনকোড করার নিয়মের সেট নির্ধারণ করে যা মানুষ ও মেশিন দুজনেই পড়তে পারে। কনফিগারেশন ফাইল, ডেটা এক্সচেঞ্জ (SOAP, RSS, Atom) এবং ডকুমেন্ট সংরক্ষণে ব্যাপকভাবে ব্যবহৃত হয়।

XML-এর মূল বৈশিষ্ট্য

স্ব-বর্ণনামূলক

XML ডেটা কাঠামো বর্ণনার জন্য কাস্টম ট্যাগ ব্যবহার করে, ফলে এক নজরেই কন্টেন্ট ও শ্রেণিবিন্যাস বোঝা যায়।

প্ল্যাটফর্ম-নিরপেক্ষ

সাধারণ টেক্সট হিসেবে XML সামঞ্জস্যের সমস্যা ছাড়াই সব প্ল্যাটফর্ম, প্রোগ্রামিং ভাষা ও সিস্টেমে কাজ করে।

এক্সটেনসিবল

DTD বা XML Schema ব্যবহার করে যেকোনো ডেটা মডেলের উপযোগী নিজের ট্যাগ ও ডকুমেন্ট কাঠামো সংজ্ঞায়িত করতে পারেন।

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

ওয়েল-ফর্মড এবং ভ্যালিড XML-এর মধ্যে পার্থক্য কী?

ওয়েল-ফর্মড XML XML-এর মৌলিক সিনট্যাক্স নিয়ম মেনে চলে (সঠিক নেস্টিং, ক্লোজিং ট্যাগ, একক রুট এলিমেন্ট)। ভ্যালিড XML ওয়েল-ফর্মডও বটে এবং এমন স্কিমার (DTD, XSD) সাথে সঙ্গতিপূর্ণ যা অনুমোদিত কাঠামো ও ডেটা টাইপ নির্ধারণ করে।

এই টুল কি XSD স্কিমার বিপরীতে ভ্যালিডেট করে?

না, এই টুল শুধু ওয়েল-ফর্মডনেস (সিনট্যাক্স সঠিকতা) পরীক্ষা করে। DTD বা XSD-র বিপরীতে স্কিমা-ভিত্তিক ভ্যালিডেশন ব্রাউজারে নেটিভভাবে সমর্থিত নয়।

কোন XPath সংস্করণ সমর্থিত?

ব্রাউজারের নেটিভ document.evaluate() XPath 1.0 সমর্থন করে। এতে axes, predicates এবং contains(), text(), @attribute-এর মতো ফাংশনসহ সাধারণ কোয়েরির বেশিরভাগই আসে।

XML নেমস্পেস কী এবং সেগুলো কীভাবে পড়া হয়?

নেমস্পেস xmlns অ্যাট্রিবিউটের মাধ্যমে এলিমেন্টের নামকে একটি URI-তে ম্যাপ করে - যেমন একটি atom:feed এলিমেন্ট xmlns:atom="http://www.w3.org/2005/Atom" ঘোষণা করা। প্রিফিক্স ইচ্ছামতো; শুধু URI-ই নেমস্পেস শনাক্ত করে, তাই দুটি ডকুমেন্ট একই শব্দভান্ডারের জন্য ভিন্ন প্রিফিক্স ব্যবহার করতে পারে। প্রিফিক্স আলাদা হলে XPath ম্যাচিংয়ে প্রায়ই local-name() ট্রিক লাগে এজন্যই।

XPath কীভাবে নোড নির্বাচন করে?

XPath 1.0 এক্সপ্রেশন ট্রি ধরে হাঁটে: /rss/channel/item পথ ধরে নির্বাচন করে, //item ডকুমেন্টের যেকোনো জায়গায় item খোঁজে, item[@type='news'] একটি অ্যাট্রিবিউটে ফিল্টার করে, আর item[1] বা item[last()]-এর মতো predicate নির্দিষ্ট নোড বেছে নেয়। এটিই XSLT, অনেক টেস্ট ফ্রেমওয়ার্ক এবং এই টুলের ইভালুয়েটরের পেছনের কোয়েরি ভাষা।

XXE কী এবং এটি কি এই টুলকে প্রভাবিত করতে পারে?

XXE (XML External Entity) ইনজেকশন একটি DTD entity-কে ফাইল পাথ বা URL-এ নির্দেশ করে অপব্যবহার করে, সার্ভার-সাইড পার্সারকে তা ফেচ করায় - ঐতিহাসিকভাবে /etc/passwd বা অভ্যন্তরীণ সার্ভিস লিক হয়েছে। ব্রাউজারের XML পার্সার বাহ্যিক entity রিজলভ করে না, এবং এই টুল সার্ভার রাউন্ড-ট্রিপ ছাড়া সম্পূর্ণ আপনার ব্রাউজারে চলে, তাই পেস্ট করা XML ফাইল পড়া বা SSRF ট্রিগার করতে পারে না।

DOM এবং SAX পার্সিংয়ের মধ্যে পার্থক্য কী?

DOM পুরো ডকুমেন্ট একটি ট্রিতে লোড করে যা আপনি এলোমেলোভাবে নেভিগেট করতে পারেন - স্বজ্ঞাত কিন্তু বিশাল ফাইলের জন্য মেমরি-ক্ষুধার। SAX এক পাসে ইভেন্ট স্ট্রিম করে (স্টার্ট ট্যাগ, টেক্সট, এন্ড ট্যাগ) ধ্রুবক মেমরিতে - দ্রুত কিন্তু শুধু ফরোয়ার্ড। ব্রাউজার JavaScript DOMParser (DOM-স্টাইল) দেয়; JavaScript-এ স্ট্রিমিং XML-এর জন্য লাইব্রেরি বা Web Streams লাগে।

XML কন্টেন্টের ভিতরে < বা & কীভাবে অন্তর্ভুক্ত করব?

সাধারণ টেক্সটে সেগুলো &lt; এবং &amp; হিসেবে এস্কেপ করুন - ক্যারেক্টার ডেটায় কাঁচা < এবং & অবৈধ। মার্কআপ-ঘন টেক্সটের ব্লকের জন্য CDATA সেকশনে মুড়ে দিন, যার শেষে ]]> সিকোয়েন্স না আসা পর্যন্ত কোনো এস্কেপিং লাগে না। কন্টেন্টে শুধু < এবং & কঠোরভাবে আবশ্যক; > শুধু তখনই এস্কেপ করতে হয় যখন তা সেই ক্লোজিং সিকোয়েন্স গঠন করে।

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}