इस लेख में
XPath क्या है?
XPath (XML Path Language) XML दस्तावेज़ों से नोड चुनने के लिए एक W3C मानक क्वेरी भाषा है। यह XML ट्री की श्रेणीबद्ध संरचना में नेविगेट करने के लिए पथ जैसे वाक्यविन्यास का उपयोग करती है, जो तत्वों, विशेषताओं और टेक्स्ट नोड को उनकी स्थिति, नाम या मान के आधार पर चुनती है।
XPath कोई स्वतंत्र तकनीक नहीं है -- यह XSLT, XQuery और DOM API जैसे अन्य मानकों के भीतर समाहित है। हर आधुनिक ब्राउज़र HTML दस्तावेज़ों को क्वेरी करने के लिए XPath का समर्थन करता है, और Selenium, Scrapy तथा lxml जैसे टूल वेब स्क्रैपिंग और स्वचालित परीक्षण के लिए XPath एक्सप्रेशन का व्यापक उपयोग करते हैं।
XPath क्वेरी कैसे काम करती हैं
एक XPath एक्सप्रेशन दस्तावेज़ ट्री में axes (दिशाओं), नोड टेस्ट (फ़िल्टर) और predicates (शर्तों) का उपयोग करके नेविगेट करता है। इन तीन अवधारणाओं को समझने से आप कोई भी क्वेरी बना सकते हैं।
- Axes और पथ -- / रूट से चुनता है, // कहीं भी वंशजों को चुनता है, .. मूल तत्व पर जाता है, और following-sibling:: जैसे नामित axes वर्तमान नोड के सापेक्ष नेविगेट करते हैं
- Predicates और फ़िल्टर -- वर्गाकार कोष्ठक [] शर्तें जोड़ते हैं: //book[price>30] उन किताबों को चुनता है जिनकी कीमत 30 से अधिक है, जबकि //div[@class='main'] एक विशिष्ट class विशेषता वाले div चुनता है
- फ़ंक्शन और ऑपरेटर -- XPath स्ट्रिंग हेरफेर, तुलना और नोड गिनती के लिए contains(), starts-with(), normalize-space() और count() जैसे अंतर्निहित फ़ंक्शन प्रदान करता है
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
एक XPath क्वेरी जांचें →XPath का उपयोग कब करें
जब भी आपको XML या HTML दस्तावेज़ों से प्रोग्रामेटिक रूप से विशिष्ट डेटा निकालना हो, तब XPath ज़रूरी हो जाता है।
- वेब स्क्रैपिंग -- Scrapy, Puppeteer या ब्राउज़र डेवलपर कंसोल जैसे टूल में XPath एक्सप्रेशन का उपयोग करके वेब पेजों से उत्पाद कीमतें, लेख शीर्षक या लिंक निकालें
- XML कॉन्फ़िगरेशन -- विशिष्ट सेटिंग्स या डिपेंडेंसी खोजने के लिए Maven pom.xml, Android manifest या Spring XML संदर्भ जैसी जटिल कॉन्फ़िगरेशन फ़ाइलों को क्वेरी और सत्यापित करें
- XSLT परिवर्तन -- XSLT स्टाइलशीट में परिवर्तन के लिए नोड चुनें, जो XML तत्वों को अलग-अलग आउटपुट प्रारूपों में मिलान और प्रोसेस करने के लिए पूरी तरह XPath एक्सप्रेशन पर निर्भर करती हैं
अक्सर पूछे जाने वाले सवाल
मुझे CSS सिलेक्टर के बजाय XPath का उपयोग कब करना चाहिए?
टैग, class या ID से बुनियादी तत्व चयन के लिए CSS सिलेक्टर सरल और तेज़ होते हैं। XPath तब चुनें जब आपको टेक्स्ट सामग्री से चयन करना हो (//a[contains(text(),'Login')]), ऊपर की ओर मूल नोड तक नेविगेट करना हो, जटिल predicates का उपयोग करना हो, या XML (HTML नहीं) दस्तावेज़ों के साथ काम करना हो। XSLT और XQuery संदर्भों में भी XPath ज़रूरी होता है।
XPath 1.0 और 2.0 के बीच क्या बदला?
XPath 2.0 ने एक समृद्ध टाइप सिस्टम (तारीखें, अनुक्रम, रेगुलर एक्सप्रेशन), सशर्त एक्सप्रेशन (if/then/else), परिमाणित एक्सप्रेशन (some/every) और रेंज एक्सप्रेशन जोड़े। हालांकि, अधिकांश ब्राउज़र और स्क्रैपिंग टूल केवल XPath 1.0 का समर्थन करते हैं। XPath 2.0 की सुविधाओं का उपयोग Saxon जैसे सर्वर-साइड टूल में या XSLT 2.0 के साथ काम करते समय करें।
मैं XPath में XML नेमस्पेस को कैसे संभालूं?
नेमस्पेस वाले तत्वों के लिए प्रीफ़िक्स मैपिंग की आवश्यकता होती है। अधिकांश API में, आप एक नेमस्पेस प्रीफ़िक्स रजिस्टर करते हैं (जैसे ns='http://example.com') और फिर उस प्रीफ़िक्स का उपयोग करके क्वेरी करते हैं: //ns:book/ns:title। नेमस्पेस रजिस्टर किए बिना, //book किसी नेमस्पेस के तत्वों से मिलान नहीं करेगा, भले ही स्थानीय नाम 'book' ही क्यों न हो। कुछ टूल विकल्प के रूप में local-name() का समर्थन करते हैं: //*[local-name()='book']।