XML पार्सर
XML दस्तावेज़ तुरंत फ़ॉर्मैट, वैलिडेट और क्वेरी करें। अधिकतम गति और गोपनीयता के लिए नेटिव ब्राउज़र API पर चलता है।
XML वेल-फ़ॉर्म्ड नहीं है
परिणाम
नोड ट्री
XML पार्सर का उपयोग कैसे करें
अपना XML पेस्ट करें
अपनी XML सामग्री कॉपी करके इनपुट फ़ील्ड में पेस्ट करें, या नमूना XML लोड करें पर क्लिक करें।
फ़ॉर्मैट और वैलिडेट
सुंदर बनाने के लिए फ़ॉर्मैट, संकुचित करने के लिए मिनिफ़ाई, एरर जांचने के लिए वैलिडेट का उपयोग करें।
XPath से क्वेरी करें
एक XPath एक्सप्रेशन दर्ज करें और विशिष्ट नोड निकालने के लिए XPath चलाएं पर क्लिक करें।
XML क्या है?
XML (eXtensible Markup Language) एक मार्कअप भाषा है जो दस्तावेज़ों को ऐसे प्रारूप में एनकोड करने के नियमों का सेट परिभाषित करती है जो मनुष्य और मशीन दोनों के पढ़ने-योग्य हो। इसका उपयोग कॉन्फ़िगरेशन फ़ाइलों, डेटा एक्सचेंज (SOAP, RSS, Atom) और दस्तावेज़ भंडारण के लिए व्यापक रूप से होता है।
XML की मुख्य विशेषताएं
स्व-वर्णनात्मक
XML डेटा संरचना बताने के लिए कस्टम टैग उपयोग करता है, जिससे सामग्री और पदानुक्रम एक नज़र में समझ आ जाता है।
प्लेटफ़ॉर्म-स्वतंत्र
सादे टेक्स्ट के रूप में XML बिना संगतता समस्या के सभी प्लेटफ़ॉर्म, प्रोग्रामिंग भाषाओं और सिस्टम पर काम करता है।
एक्सटेंसिबल
DTD या XML Schema से आप किसी भी डेटा मॉडल के अनुकूल अपने टैग और दस्तावेज़ संरचना परिभाषित कर सकते हैं।
अक्सर पूछे जाने वाले प्रश्न
वेल-फ़ॉर्म्ड XML XML के मूल सिंटैक्स नियमों का पालन करता है (उचित नेस्टिंग, क्लोज़िंग टैग, एकल रूट एलिमेंट)। वैलिड XML वेल-फ़ॉर्म्ड भी होता है और एक स्कीमा (DTD, XSD) के अनुरूप भी, जो अनुमत संरचना और डेटा प्रकार परिभाषित करता है।
नहीं, यह टूल केवल वेल-फ़ॉर्म्डनेस (सिंटैक्स सहीपन) जांचता है। DTD या XSD के विरुद्ध स्कीमा-आधारित वैलिडेशन ब्राउज़र में नेटिव रूप से समर्थित नहीं है।
ब्राउज़र का नेटिव document.evaluate() XPath 1.0 का समर्थन करता है। इसमें axes, predicates और contains(), text(), @attribute जैसे फ़ंक्शन सहित अधिकांश सामान्य क्वेरियां आ जाती हैं।
नेमस्पेस xmlns एट्रिब्यूट के ज़रिए एलिमेंट नामों को एक URI से मैप करता है - जैसे एक atom:feed एलिमेंट xmlns:atom="http://www.w3.org/2005/Atom" घोषित करता है। प्रीफ़िक्स कोई भी हो सकता है; केवल URI ही नेमस्पेस की पहचान करता है, इसलिए दो दस्तावेज़ एक ही शब्दावली के लिए अलग प्रीफ़िक्स रख सकते हैं। इसी कारण प्रीफ़िक्स अलग होने पर XPath मैचिंग में अक्सर local-name() ट्रिक चाहिए।
XPath 1.0 एक्सप्रेशन ट्री पर चलते हैं: /rss/channel/item पाथ से चुनता है, //item दस्तावेज़ में कहीं भी item ढूंढता है, item[@type='news'] एट्रिब्यूट पर फ़िल्टर करता है, और item[1] या item[last()] जैसे predicates विशिष्ट नोड चुनते हैं। यही XSLT, कई टेस्ट फ़्रेमवर्क और इस टूल के एवैल्युएटर के पीछे की क्वेरी भाषा है।
XXE (XML External Entity) इंजेक्शन एक DTD entity को फ़ाइल पाथ या URL की ओर इशारा करके दुरुपयोग करता है, जिससे सर्वर-साइड पार्सर उसे फ़ेच कर बैठता है - ऐतिहासिक रूप से /etc/passwd या आंतरिक सेवाएं लीक हुई हैं। ब्राउज़र के XML पार्सर बाहरी entity रिज़ॉल्व नहीं करते, और यह टूल बिना सर्वर राउंड-ट्रिप के पूरी तरह आपके ब्राउज़र में चलता है, इसलिए पेस्ट किया XML फ़ाइल पढ़ना या SSRF ट्रिगर नहीं कर सकता।
DOM पूरे दस्तावेज़ को एक ट्री में लोड करता है जिसमें आप यादृच्छिक रूप से नेविगेट कर सकते हैं - सहज लेकिन विशाल फ़ाइलों के लिए मेमोरी-भूखा। SAX एक ही पास में इवेंट स्ट्रीम करता है (स्टार्ट टैग, टेक्स्ट, एंड टैग) नियत मेमोरी में - तेज़ लेकिन केवल आगे की ओर। ब्राउज़र JavaScript DOMParser (DOM-शैली) देता है; JavaScript में स्ट्रीमिंग XML के लिए लाइब्रेरी या Web Streams चाहिए।
साधारण टेक्स्ट में इन्हें < और & के रूप में एस्केप करें - कैरेक्टर डेटा में कच्चा < और & अवैध है। मार्कअप-भरे टेक्स्ट के ब्लॉक के लिए उसे CDATA सेक्शन में लपेटें, जिसमें अंत में ]]> अनुक्रम न आए तब तक कोई एस्केपिंग नहीं चाहिए। सामग्री में केवल < और & अनिवार्य हैं; > को केवल तब एस्केप करना होता है जब वह वही क्लोज़िंग अनुक्रम बनाता हो।
संबंधित टूल्स
प्रामाणिक संदर्भ
इस टूल के पीछे के मूल स्रोत — दूसरे हाथ के सार नहीं, बल्कि आधिकारिक स्टैंडर्ड और स्पेसिफिकेशन।
W3C - Extensible Markup Language (XML) 1.0
प्रारूप की नींव Extensible Markup Language 1.0 परिभाषित करने वाला W3C Recommendation।
XML - Wikipedia
XML ट्री मॉडल, नेमस्पेस, और प्रारूप validity व well-formedness पर ज़ोर क्यों देता है।
MDN Web Docs - XML
ब्राउज़र में XML प्रोसेसिंग की Mozilla गाइड, DOMParser उपयोग सहित।