XML का मतलब "एक्सटेंसिबल मार्कअप लैंग्वेज" है। यह मुख्य रूप से वेबपेजों में उपयोग किया जाता है, जहां डेटा की एक विशिष्ट संरचना होती है। इसमें तत्व होते हैं, जो एक शुरुआत और एक अंत टैग द्वारा परिभाषित होते हैं। एक टैग एक मार्कअप निर्माण है जो <से शुरू होता है और> के साथ समाप्त होता है। स्टार्ट-टैग और एंड-टैग के बीच के अक्षर तत्व की सामग्री हैं। तत्वों में अन्य तत्व हो सकते हैं, जिन्हें "बाल तत्व" कहा जाता है।
उदाहरण
नीचे एक XML फ़ाइल का उदाहरण दिया गया है जिसका उपयोग हम इस ट्यूटोरियल में करने जा रहे हैं।
<?xml version="1.0"?> <Tutorials> <Tutorial id="Tu101"> <author>Vicky, Matthew</author> <title>Geo-Spatial Data Analysis</title> <stream>Python</stream> <price>4.95</price> <publish_date>2020-07-01</publish_date> <description>Learn geo Spatial data Analysis using Python.</description> </Tutorial> <Tutorial id="Tu102"> <author>Bolan, Kim</author> <title>Data Structures</title> <stream>Computer Science</stream> <price>12.03</price> <publish_date>2020-1-19</publish_date> <description>Learn Data structures using different programming lanuages.</description> </Tutorial> <Tutorial id="Tu103"> <author>Sora, Everest</author> <title>Analytics using Tensorflow</title> <stream>Data Science</stream> <price>7.11</price> <publish_date>2020-1-19</publish_date> <description>Learn Data analytics using Tensorflow.</description> </Tutorial> </Tutorials>
Xml.etree.ElementTree का उपयोग करके xml पढ़ना
यह मॉड्यूल xml फ़ाइल की जड़ तक पहुँच प्रदान करता है और फिर हम आंतरिक तत्वों की सामग्री तक पहुँच सकते हैं। नीचे दिए गए उदाहरण में हम टेक्स्ट नामक विशेषता का उपयोग करते हैं और उन तत्वों की सामग्री प्राप्त करते हैं।
उदाहरण
import xml.etree.ElementTree as ET xml_tree = ET.parse('E:\\TutorialsList.xml') xml_root = xml_tree.getroot() # Header print('Tutorial List :') for xml_elmt in xml_root: for inner_elmt in xml_elmt: print(inner_elmt.text)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Tutorial List : Vicky, Matthew Geo-Spatial Data Analysis Python 4.95 2020-07-01 Learn geo Spatial data Analysis using Python. Bolan, Kim Data Structures Computer Science 12.03 2020-1-19 Learn Data structures using different programming lanuages. Sora, Everest Analytics using Tensorflow Data Science 7.11 2020-1-19 Learn Data analytics using Tensorflow.
xml विशेषताएँ प्राप्त करना
हम रूट टैग में विशेषताओं और उनके मूल्यों की सूची प्राप्त कर सकते हैं। एक बार जब हमें विशेषताएँ मिल जाती हैं, तो यह हमें XML ट्री को आसानी से नेविगेट करने में मदद करती है।
उदाहरण
import xml.etree.ElementTree as ET xml_tree = ET.parse('E:\\TutorialsList.xml') xml_root = xml_tree.getroot() # Header print('Tutorial List :') for movie in xml_root.iter('Tutorial'): print(movie.attrib)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Tutorial List : {'id': 'Tu101'} {'id': 'Tu102'} {'id': 'Tu103'}
परिणाम फ़िल्टर करना
हम इस मॉड्यूल के फाइंडॉल () फ़ंक्शन का उपयोग करके परिणामों को xml ट्री से फ़िल्टर भी कर सकते हैं। नीचे दिए गए उदाहरण में हम उस ट्यूटोरियल की आईडी ढूंढते हैं जिसकी कीमत 12.03 है।
उदाहरण
import xml.etree.ElementTree as ET xml_tree = ET.parse('E:\\TutorialsList.xml') xml_root = xml_tree.getroot() # Header print('Tutorial List :') for movie in xml_root.findall("./Tutorial/[price ='12.03']"): print(movie.attrib)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Tutorial List : {'id': 'Tu102'}
XML को DOM API से पार्स करना
हम xml.dom मॉड्यूल का उपयोग करके एक मिनीडोम ऑब्जेक्ट बनाते हैं। मिनीडॉम ऑब्जेक्ट एक सरल पार्सर विधि प्रदान करता है जो जल्दी से XML फ़ाइल से एक DOM ट्री बनाता है। नमूना वाक्यांश एक DOM ट्री ऑब्जेक्ट में फ़ाइल द्वारा निर्दिष्ट XML फ़ाइल को पार्स करने के लिए मिनीडॉम ऑब्जेक्ट के पार्स (फ़ाइल [, पार्सर]) फ़ंक्शन को कॉल करता है।
उदाहरण
from xml.dom.minidom import parse import xml.dom.minidom # Open XML document using minidom parser DOMTree = xml.dom.minidom.parse('E:\\TutorialsList.xml') collection = DOMTree.documentElement # Get all the movies in the collection tut_list = collection.getElementsByTagName("Tutorial") print("*****Tutorials*****") # Print details of each Tutorial. for tut in tut_list: strm = tut.getElementsByTagName('stream')[0] print("Stream: ",strm.childNodes[0].data) prc = tut.getElementsByTagName('price')[0] print("Price: ", prc.childNodes[0].data)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
*****Tutorials***** Stream: Python Price: 4.95 Stream: Computer Science Price: 12.03 Stream: Data Science Price: 7.11