पायथन एक्सएमएल पार्सर पार्सर एक्सएमएल फाइल से उपयोगी जानकारी को पढ़ने और निकालने का सबसे आसान तरीका प्रदान करता है। इस संक्षिप्त ट्यूटोरियल में हम यह देखने जा रहे हैं कि कैसे हम XML फ़ाइल को पार्स कर सकते हैं, संशोधित कर सकते हैं और अजगर ElementTree XML API का उपयोग करके XML दस्तावेज़ बना सकते हैं।
Python ElementTree API XML डेटा को निकालने, पार्स करने और बदलने का सबसे आसान तरीका है।
तो चलिए ElementTree का उपयोग करके अजगर XML पार्सर का उपयोग शुरू करते हैं:
उदाहरण1
XML फ़ाइल बनाना
सबसे पहले हम एक तत्व और एक उप-तत्व के साथ एक नई XML फ़ाइल बनाने जा रहे हैं।
#Import required library
import xml.etree.ElementTree as xml
def createXML(filename):
# Start with the root element
root = xml.Element("users")
children1 = xml.Element("user")
root.append(children1)
tree = xml.ElementTree(root)
with open(filename, "wb") as fh:
tree.write(fh)
if __name__ == "__main__":
createXML("testXML.xml") एक बार जब हम उपरोक्त कार्यक्रम चलाते हैं, तो हमारी वर्तमान डिफ़ॉल्ट कार्यशील निर्देशिका में "textXML.xml" नामक एक नई फ़ाइल बनाई जाती है:

जिसमें कुछ इस तरह की सामग्री है:
<users><user /></users>
कृपया ध्यान दें कि फाइल लिखते समय हमने 'wb' मोड का उपयोग किया है। फ़ाइल को बाइनरी मोड में लिखें।
XML तत्वों में मान जोड़ना
आइए हमारे उपरोक्त कार्यक्रम में XML तत्वों को कुछ मान दें:
#Import required library
import xml.etree.ElementTree as xml
def createXML(filename):
# Start with the root element
root = xml.Element("users")
children1 = xml.Element("user")
root.append(children1)
userId1 = xml.SubElement(children1, "Id")
userId1.text = "hello"
userName1 = xml.SubElement(children1, "Name")
userName1.text = "Rajesh"
tree = xml.ElementTree(root)
with open(filename, "wb") as fh:
tree.write(fh)
if __name__ == "__main__":
createXML("testXML.xml") उपरोक्त प्रोग्राम को चलाने के बाद, हम देखेंगे कि नए तत्वों को मूल्यों के साथ जोड़ा गया है, कुछ इस तरह:
<users> <user> <Id>hello</Id> <Name>Rajesh</Name> </user> </users>
ऊपर आउटपुट ठीक दिखता है।
आइए अब फाइलों का संपादन शुरू करें:
XML डेटा संपादित करना
आइए हमारे मौजूदा प्रोग्राम में फ़ाइल से थोड़ा सा डेटा जोड़ें।
newdata.xml
<users> <user> <id>1a</id> <name>Rajesh</name> <salary>NA</salary> </user> <user> <id>2b</id> <name>TutorialsPoint</name> <salary>NA</salary> </user> <user> <id>3c</id> <name>Others</name> <salary>NA</salary> </user> </users>
ऊपर हमारी वर्तमान xml फ़ाइल है, आइए प्रत्येक उपयोगकर्ता के वेतन को अद्यतन करने का प्रयास करें:
#Import required library
import xml.etree.ElementTree as ET
def updateET(filename):
# Start with the root element
tree = ET.ElementTree(file=filename)
root = tree.getroot()
for salary in root.iter('salary'):
salary.text = '500000'
tree = ET.ElementTree(root)
with open("newdata.xml", "wb") as fh:
tree.write(fh)
if __name__ == "__main__":
updateET("newdata.xml") आउटपुट

तो हम देखते हैं कि वेतन 'एनए' से बदलकर '500000' कर दिया गया है।
उदाहरण:पायथन एक्सएमएल पार्सर
अब एक और प्रोग्राम लिखते हैं जो फ़ाइल में मौजूद XML डेटा को पार्स करेगा और डेटा को प्रिंट करेगा।
#Import required library
import xml.etree.cElementTree as ET
def parseXML(file_name):
# Parse XML with ElementTree
tree = ET.ElementTree(file=file_name)
print(tree.getroot())
root = tree.getroot()
print("tag=%s, attrib=%s" % (root.tag, root.attrib))
# get the information via the children!
print("-" * 25)
print("Iterating using getchildren()")
print("-" * 25)
users = root.getchildren()
for user in users:
user_children = user.getchildren()
for user_child in user_children:
print("%s=%s" % (user_child.tag, user_child.text))
if __name__ == "__main__":
parseXML("newdata.xml") आउटपुट
<Element 'users' at 0x0551A5A0>
tag = users, attrib = {}
-------------------------
Iterating using getchildren()
-------------------------
id = 1a
name = Rajesh
salary = 500000
id = 2b
name = TutorialsPoint
salary = 500000
id = 3c
name = Others
salary = 500000