XML फ़ाइल खोलें
कोणीय कोष्ठकों की दीवार की जगह समेटने लायक ट्री। जो नहीं चाहिए उसे समेट दें, जो चाहिए उसे खोजें, और एट्रिब्यूट व namespace साफ़-साफ़ देखें।
- कभी स्टोर नहीं होती
- न कतार, न इंतज़ार
- साइनअप नहीं, वॉटरमार्क नहीं
XML, RSS फ़ीड, SVG या कॉन्फ़िग फ़ाइल पेस्ट करें, और वह यहां ट्री के रूप में दिखेगी।
यह कैसे काम करता है
फ़ाइल पेस्ट करें या यहां छोड़ें
XML, RSS, Atom, SVG, sitemap, कॉन्फ़िग फ़ाइल — कुछ भी जो XML हो।
ट्री खंगालें
शाखाएं समेटें, जो चाहिए उसे खोलें, और देखें कि डॉक्यूमेंट कितना गहरा है।
इसके अंदर खोजें
पूरा पढ़े बिना कोई एलिमेंट, एट्रिब्यूट या वैल्यू ढूंढें।
ऐसा ट्री जिसमें सच में घूमा जा सके
टेक्स्ट एडिटर में XML कोणीय कोष्ठकों की दीवार होता है; वही डॉक्यूमेंट ट्री के रूप में ऐसा होता है जिसे पढ़ा जा सके। हर एलिमेंट एक पंक्ति बन जाता है जिसे आप खोल या समेट सकते हैं, एट्रिब्यूट लाइन में भीड़ करने की बजाय अपने एलिमेंट के साथ दिखते हैं, और नेस्टिंग ही इंडेंटेशन है — इसलिए दस हज़ार लाइन के एक्सपोर्ट में अपना एक काम का रिकॉर्ड ढूंढना बस उन शाखाओं को बंद करने की बात है जो आपको नहीं चाहिए।
कुछ सौ से ज़्यादा एलिमेंट वाला डॉक्यूमेंट जान-बूझकर रूट के नीचे समेटा हुआ खुलता है। बड़े एक्सपोर्ट की हर पंक्ति पहले ड्रॉ करने का मतलब होता ऐसा पेज जो इस्तेमाल लायक होने में सेकंड लगाए और फिर अटक-अटक कर स्क्रॉल हो; समेटकर शुरू करने से डॉक्यूमेंट का ढांचा तुरंत दिख जाता है, और आम तौर पर आप यही ढूंढ रहे होते हैं। आगे बढ़ते हुए खोलते जाना तेज़ भी है और किसी अनजान फ़ाइल को समझने का बेहतर तरीक़ा भी।
न कुछ फ़ेच किया जाता है, न कुछ resolve किया जाता है। XML डॉक्यूमेंट किसी बाहरी DTD या entity की ओर इशारा कर सकता है, और जो पार्सर इन इशारों का पालन करता है वह जाकर वही चीज़ ले आएगा जिसकी ओर वे इशारा करते हैं — डिस्क पर रखी कोई फ़ाइल, किसी अंदरूनी नेटवर्क का कोई पता। यही XML External Entity कमज़ोरी है, और इसका पूरा बचाव सिर्फ़ मना करना है। इसलिए जो डॉक्यूमेंट किसी बाहरी DTD पर निर्भर है, वह उसके बिना दिखता है — यह कमी नहीं, सुरक्षा का गुण है, और यह ठीक उसी हालत में सबसे ज़्यादा मायने रखता है जिसके लिए लोग व्यूअर इस्तेमाल करते हैं: ऐसी फ़ाइल की जांच जो उन्होंने ख़ुद नहीं लिखी।
Namespace जैसे लिखे हैं वैसे ही दिखाए जाते हैं, उन्हें सामान्य बनाकर हटाया नहीं जाता, क्योंकि किसी अनजान डॉक्यूमेंट में अक्सर prefix ही वह चीज़ होती है जिसे आप समझने की कोशिश कर रहे होते हैं। CDATA सेक्शन उनके अंदर के टेक्स्ट के रूप में ज्यों के त्यों दिखते हैं, और entity reference खोले नहीं जाते बल्कि वैसे ही दिखाए जाते हैं, ताकि जो आप देखें वह फ़ाइल में मौजूद चीज़ से मेल खाए।
जब आपको कुछ और चाहिए
जब आपको पता हो कि क्या ढूंढना है, तो ब्राउज़ करने की बजाय query करें। xmlstarlet sel -t -v "//order[@id='42']/total" data.xml एक XPath एक्सप्रेशन से एक ख़ास सवाल का जवाब देता है, और xmllint --xpath भी यही करता है। जब आप बता सकते हैं कि आपको क्या चाहिए, तो यह ट्री खोलने से कहीं तेज़ है।
जो फ़ाइलें मेमोरी में समा ही नहीं सकतीं — और ट्री के रूप में पार्स हुआ XML आम तौर पर फ़ाइल के साइज़ से कई गुना जगह लेता है — उनमें कोई व्यूअर मदद नहीं करेगा। Python के iterparse जैसे streaming पार्सर कई गीगाबाइट के डॉक्यूमेंट को स्थिर मेमोरी में पढ़ लेते हैं, और किसी बहुत बड़ी चीज़ का ढांचा उसे लोड किए बिना देखने के लिए less के साथ xmllint --format काफ़ी है।
अक्सर पूछे जाने वाले सवाल
क्या मेरी फ़ाइल कहीं स्टोर होती है?
नहीं। कुछ भी स्टोर नहीं किया जाता, कुछ भी रखा नहीं जाता, और पेज लोड होने के बाद यह Wi-Fi बंद होने पर भी काम करता है।
अगर XML टूटा हुआ हो तो क्या होता है?
आपको लाइन, कॉलम और कैरेक्टर मिलते हैं, गड़बड़ वाली लाइन दिखाई जाती है और ठीक उस जगह के नीचे एक निशान (^) लगा होता है — बिल्कुल हमारे XML वैलिडेटर जैसी रिपोर्ट। जो व्यूअर बस “पार्स नहीं हो सका” कहता है, उससे आपको कोई फ़ायदा नहीं होता।
क्या यह एट्रिब्यूट और namespace दिखाता है?
हां। एट्रिब्यूट छिपाए नहीं जाते, अपने एलिमेंट पर दिखते हैं, और namespace declaration अलग से दिखाए जाते हैं — बिना declare किया prefix उन सबसे आम वजहों में से है जिनसे XML कहीं और पार्स नहीं हो पाता, और प्लेन टेक्स्ट में यह दिखता ही नहीं।
क्या यह RSS या Atom फ़ीड खोल सकता है?
हां, वे XML ही हैं। वैसे ही sitemap, SVG इमेज, Android लेआउट, Maven POM और ज़्यादातर कॉन्फ़िगरेशन फ़ाइलें भी। अगर वह XML है, तो यहां खुल जाएगा।
क्या यह XML फ़ॉर्मैटर जैसा ही है?
दोनों अलग सवालों का जवाब देते हैं। फ़ॉर्मैटर आपको इंडेंट किया हुआ XML टेक्स्ट देता है जिसे आप वापस फ़ाइल में कॉपी कर सकें। यह आपको पढ़ने और खंगालने के लिए ट्री देता है, जिसकी शाखाएं समेटी जा सकती हैं — जब डॉक्यूमेंट बड़ा हो और आप उसे एडिट नहीं बल्कि उसमें कुछ ढूंढ रहे हों, तब यह बेहतर है।
यह कितनी बड़ी फ़ाइल खोल सकता है?
कोई तय साइज़ लिमिट नहीं, जितनी मेमोरी उपलब्ध हो। बड़े डॉक्यूमेंट समेटे हुए खुलते हैं, ताकि कुछ भी करने से पहले आपको हज़ारों नोड ड्रॉ होने का इंतज़ार न करना पड़े।
ध्यान दें: कुछ सौ से ज़्यादा एलिमेंट वाला डॉक्यूमेंट रूट के नीचे समेटा हुआ खुलता है, ताकि हज़ारों पंक्तियां पहले ड्रॉ होने की बजाय पेज तुरंत इस्तेमाल हो सके। पूरा डॉक्यूमेंट मेमोरी में रखा जाता है, इसलिए बहुत बड़े XML एक्सपोर्ट की सीमा टूल नहीं, ब्राउज़र टैब तय करता है।
यह टूल अपनी वेबसाइट पर लगाएं
किसी भी ब्लॉग, क्लास पेज या हेल्प आर्टिकल के लिए मुफ़्त। एक स्निपेट पेस्ट करें और आपके विज़िटर इसे सीधे आपके पेज पर इस्तेमाल कर सकेंगे।