XML क्या है?
एक्सएमएल एक्सेन्सेबल मार्कअप लैंग्वेज के लिए है। यह छोटे से मध्यम मात्रा के डेटा को स्टोर और ट्रांसपोर्ट करने के लिए डिज़ाइन किया गया था और संरचित जानकारी साझा करने के लिए व्यापक रूप से उपयोग किया जाता है।
अजगर आपको XML दस्तावेज़ को पार्स और संशोधित करने में सक्षम बनाता है। XML डॉक्युमेंट को पार्स करने के लिए आपको पूरे XML डॉक्यूमेंट को मेमोरी में रखना होगा। इस ट्यूटोरियल में, हम देखेंगे कि हम XML फाइल को लोड और पार्स करने के लिए पायथन में XML मिनीडोम क्लास का उपयोग कैसे कर सकते हैं।
इस ट्यूटोरियल में, हम सीखेंगे-
- Minidom का उपयोग करके XML को पार्स कैसे करें
- XML Node कैसे बनाएं
- ElementTree का उपयोग करके XML को पार्स कैसे करें
Minidom का उपयोग करके XML को पार्स कैसे करें
हमने एक नमूना XML फ़ाइल बनाई है जिसे हम पार्स करने जा रहे हैं।
चरण 1) फ़ाइल के अंदर, हम पहला नाम, अंतिम नाम, घर और विशेषज्ञता का क्षेत्र (SQL, पायथन, परीक्षण और व्यवसाय) देख सकते हैं
चरण 2) एक बार जब हमने दस्तावेज़ को पार्स कर दिया है, तो हम दस्तावेज़ की जड़ के "नोड नाम" और " फ़र्स्टचाइल्ड टैग्नैम" को प्रिंट करेंगे । Tagname और nodename XML फ़ाइल के मानक गुण हैं।
- Xml.dom.minidom मॉड्यूल आयात करें और फ़ाइल को घोषित करें जिसे पार्स किया जाना है (myxml.xml)
- यह फ़ाइल कर्मचारी के बारे में कुछ बुनियादी जानकारी देती है जैसे पहला नाम, अंतिम नाम, घर, विशेषज्ञता आदि।
- XML फ़ाइल को लोड करने और पार्स करने के लिए हम XML मिनीडोम पर पार्स फ़ंक्शन का उपयोग करते हैं
- हमारे पास चर डॉक है और डॉक्टर को पार्स फ़ंक्शन का परिणाम मिलता है
- हम फ़ाइल से नोडनेम और चाइल्ड टैग्नैम प्रिंट करना चाहते हैं, इसलिए हम इसे प्रिंट फ़ंक्शन में घोषित करते हैं
- कोड चलाएं- यह XML फ़ाइल से नोडनेम (#document) प्रिंट करता है और XML फ़ाइल से पहला बच्चा tagname (कर्मचारी)
नोट :
Nodename और चाइल्ड tagname एक XML डोम के मानक नाम या गुण हैं। मामले में यदि आप इस प्रकार के नामकरण सम्मेलनों से परिचित नहीं हैं।
चरण 3) हम एक्सएमएल टैग की सूची को एक्सएमएल दस्तावेज़ से भी कॉल कर सकते हैं और प्रिंट आउट ले सकते हैं। यहां हमने SQL, पायथन, टेस्टिंग और बिजनेस जैसे कौशल के सेट को प्रिंट किया।
- परिवर्तनशील विशेषज्ञता की घोषणा करें, जिसमें से हम सभी विशेषज्ञता नाम कर्मचारी को निकालने जा रहे हैं
- "GetElementsByTagName" नामक डोम मानक फ़ंक्शन का उपयोग करें
- इससे कौशल नाम के सभी तत्व मिल जाएंगे
- कौशल टैग में से प्रत्येक पर लूप की घोषणा करें
- कोड चलाएँ- यह चार कौशल की सूची देगा
XML Node कैसे बनाएं
हम "createElement" फ़ंक्शन का उपयोग करके एक नई विशेषता बना सकते हैं और फिर इस नए विशेषता या टैग को मौजूदा XML टैग में जोड़ सकते हैं। हमने अपनी XML फ़ाइल में एक नया टैग "BigData" जोड़ा।
- आपको मौजूदा XML टैग में नई विशेषता (BigData) जोड़ने के लिए कोड करना होगा
- फिर आपको XML टैग्स को मौजूदा XML टैग के साथ संलग्न नई विशेषताओं के साथ प्रिंट करना होगा
- एक नया XML जोड़ने और इसे दस्तावेज़ में जोड़ने के लिए, हम कोड "doc.create तत्वों" का उपयोग करते हैं
- यह कोड हमारी नई विशेषता "बिग-डेटा" के लिए एक नया कौशल टैग बनाएगा
- इस कौशल टैग को पहले बच्चे (कर्मचारी) के दस्तावेज में जोड़ें
- कोड चलाएँ- नया टैग "बड़ा डेटा" विशेषज्ञता की दूसरी सूची के साथ दिखाई देगा
XML पार्सर उदाहरण
अजगर 2 उदाहरण
आयात xml.dom.minidomdef मुख्य ():# XML फ़ाइल को लोड और पार्स करने के लिए पार्स () फ़ंक्शन का उपयोग करेंdoc = xml.dom.minidom.parse ("Myxml.xml");# डॉक्यूमेंट नोड और पहले चाइल्ड टैग के नाम का प्रिंट आउट लेंdoc.nodeName प्रिंट करेंdoc.firstChild.tagName प्रिंट करें# दस्तावेज़ से XML टैग की एक सूची प्राप्त करें और प्रत्येक को प्रिंट करेंविशेषज्ञता = doc.getElementsByTagName ("विशेषज्ञता")प्रिंट "% d विशेषज्ञता:"% विशेषज्ञता.लगावविशेषज्ञता में कौशल के लिए:प्रिंट कौशल।# एक नया XML टैग बनाएं और इसे दस्तावेज़ में जोड़ेंnewexpertise = doc.createElement ("विशेषज्ञता")newexpertise.setAttribute ("नाम", "बिगडाटा")doc.firstChild.appendChild (newexpertise)प्रिंट करें ""विशेषज्ञता = doc.getElementsByTagName ("विशेषज्ञता")प्रिंट "% d विशेषज्ञता:"% विशेषज्ञता.लगावविशेषज्ञता में कौशल के लिए:प्रिंट कौशल।यदि नाम == "__main__":मुख्य();
पायथन 3 उदाहरण
आयात xml.dom.minidomdef मुख्य ():# XML फ़ाइल को लोड और पार्स करने के लिए पार्स () फ़ंक्शन का उपयोग करेंdoc = xml.dom.minidom.parse ("Myxml.xml");# डॉक्यूमेंट नोड और पहले चाइल्ड टैग के नाम का प्रिंट आउट लेंप्रिंट (doc.nodeName)प्रिंट (doc.firstChild.tagName)# दस्तावेज़ से XML टैग की एक सूची प्राप्त करें और प्रत्येक को प्रिंट करेंविशेषज्ञता = doc.getElementsByTagName ("विशेषज्ञता")प्रिंट ("% d विशेषज्ञता:"% विशेषज्ञता.लिफ्ट)विशेषज्ञता में कौशल के लिए:प्रिंट# एक नया XML टैग बनाएं और इसे दस्तावेज़ में जोड़ेंnewexpertise = doc.createElement ("विशेषज्ञता")newexpertise.setAttribute ("नाम", "बिगडाटा")doc.firstChild.appendChild (newexpertise)प्रिंट करें ("")विशेषज्ञता = doc.getElementsByTagName ("विशेषज्ञता")प्रिंट ("% d विशेषज्ञता:"% विशेषज्ञता.लिफ्ट)विशेषज्ञता में कौशल के लिए:प्रिंटअगर __name__ == "__main__":मुख्य();
ElementTree का उपयोग करके XML को पार्स कैसे करें
ElementTree XML में हेरफेर करने के लिए एक एपीआई है। ElementTree XML फ़ाइलों को प्रोसेस करने का आसान तरीका है।
हम नमूना डेटा के रूप में निम्नलिखित XML दस्तावेज़ का उपयोग कर रहे हैं:
- SQL
- Python
ElementTree का उपयोग करके XML पढ़ना:
हमें पहले xml.etree.ElementTree मॉड्यूल आयात करना होगा।
import xml.etree.ElementTree as ET
अब हम मूल तत्व को लाते हैं:
root = tree.getroot()
निम्नलिखित xml डेटा के ऊपर पढ़ने के लिए पूरा कोड है
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)आउटपुट:
Expertise Data:SQLPython
सारांश:
पायथन आपको एक बार में पूरे XML दस्तावेज़ को पार्स करने में सक्षम बनाता है और एक बार में केवल एक पंक्ति नहीं। XML डॉक्युमेंट को पार्स करने के लिए आपको पूरे डॉक्यूमेंट को मेमोरी में रखना होगा।
- XML दस्तावेज़ पार्स करने के लिए
- आयात xml.dom.minidom
- दस्तावेज़ को पार्स करने के लिए फ़ंक्शन "पार्स" का उपयोग करें (डॉक्टर = xml.dom.minidom.parse (फ़ाइल नाम);
- कोड (= doc.getElementsByTagName ("xml टैग का नाम") का उपयोग करके XML दस्तावेज़ से XML टैग की सूची को कॉल करें
- XML दस्तावेज़ में नई विशेषता बनाने और जोड़ने के लिए
- फ़ंक्शन "createElement" का उपयोग करें