Python XML फ़ाइल – कैसे पढ़ें, लिखें और पार्स करें

एक्सएमएल क्या है?

XML का मतलब है एक्सटेंसिबल मार्कअप लैंग्वेज। इसे छोटे से मध्यम मात्रा में डेटा को स्टोर और ट्रांसपोर्ट करने के लिए डिज़ाइन किया गया था और इसका व्यापक रूप से संरचित जानकारी साझा करने के लिए उपयोग किया जाता है।

Python आपको XML दस्तावेज़ों को पार्स और संशोधित करने में सक्षम बनाता है। XML दस्तावेज़ को पार्स करने के लिए, आपको संपूर्ण XML दस्तावेज़ को मेमोरी में रखना होगा। इस ट्यूटोरियल में, हम देखेंगे कि हम XML मिनीडोम क्लास का उपयोग कैसे कर सकते हैं Python XML फ़ाइलों को लोड और पार्स करने के लिए.

मिनीडोम का उपयोग करके XML को पार्स कैसे करें

हमने एक नमूना XML फ़ाइल बनाई है जिसे हम पार्स करने जा रहे हैं।

चरण 1) नमूना XML फ़ाइल बनाएँ

फ़ाइल के अंदर, हम पहला नाम, अंतिम नाम, घर और विशेषज्ञता का क्षेत्र (SQL, Python, परीक्षण और व्यवसाय)

मिनीडोम का उपयोग करके XML को पार्स कैसे करें

चरण 2) XML फ़ाइल को लोड और पार्स करने के लिए पार्स फ़ंक्शन का उपयोग करें

एक बार जब हम दस्तावेज़ को पार्स कर लेंगे, तो हम उसका प्रिंट आउट लेंगे “नोड नाम” दस्तावेज़ की जड़ और "प्रथम संतान टैगनाम”टैगनाम और नोडनाम XML फ़ाइल के मानक गुण हैं।

मिनीडोम का उपयोग करके XML पार्स करें

  • xml.dom.minidom मॉड्यूल आयात करें और उस फ़ाइल की घोषणा करें जिसे पार्स किया जाना है (myxml.xml)
  • इस फ़ाइल में कर्मचारी के बारे में कुछ बुनियादी जानकारी होती है जैसे पहला नाम, अंतिम नाम, घर, विशेषज्ञता आदि।
  • हम XML फ़ाइल को लोड करने और पार्स करने के लिए XML मिनीडोम पर पार्स फ़ंक्शन का उपयोग करते हैं
  • हमारे पास doc चर है और doc पार्स फ़ंक्शन का परिणाम प्राप्त करता है
  • हम फ़ाइल से नोडनाम और चाइल्ड टैगनाम प्रिंट करना चाहते हैं, इसलिए हम इसे प्रिंट फ़ंक्शन में घोषित करते हैं
  • कोड चलाएँ- यह XML फ़ाइल से नोडनाम (#document) और XML फ़ाइल से प्रथम चाइल्ड टैगनाम (कर्मचारी) प्रिंट करता है

नोट:

नोडनाम और चाइल्ड टैगनाम XML डोम के मानक नाम या गुण हैं।

चरण 3) XML दस्तावेज़ से XML टैग की सूची को कॉल करें और प्रिंट करें

इसके बाद, हम XML दस्तावेज़ से XML टैग की सूची भी कॉल कर सकते हैं और प्रिंट आउट कर सकते हैं। यहाँ हमने SQL जैसे कौशल के सेट को प्रिंट किया है, Python, परीक्षण और व्यापार.

मिनीडोम का उपयोग करके XML पार्स करें

  • परिवर्तनशील विशेषज्ञता की घोषणा करें, जिससे हम कर्मचारी के पास मौजूद सभी विशेषज्ञता को निकालने जा रहे हैं
  • “getElementsByTagName” नामक डोम मानक फ़ंक्शन का उपयोग करें
  • इससे कौशल नाम के सभी तत्व प्राप्त हो जाएंगे
  • प्रत्येक कौशल टैग पर लूप घोषित करें
  • कोड चलाएँ- यह चार कौशलों की सूची देगा

XML नोड कैसे लिखें

हम “createElement” फ़ंक्शन का उपयोग करके एक नई विशेषता बना सकते हैं और फिर इस नई विशेषता या टैग को मौजूदा XML टैग में जोड़ सकते हैं। हमने अपनी XML फ़ाइल में एक नया टैग “BigData” जोड़ा है।

  1. आपको मौजूदा XML टैग में नई विशेषता (BigData) जोड़ने के लिए कोड करना होगा
  2. फिर, आपको मौजूदा XML टैग के साथ नई विशेषताओं को जोड़कर XML टैग को प्रिंट करना होगा

XML नोड लिखें

  • नया XML जोड़ने और उसे दस्तावेज़ में जोड़ने के लिए, हम कोड “doc.create elements” का उपयोग करते हैं
  • यह कोड हमारी नई विशेषता “बिग-डेटा” के लिए एक नया कौशल टैग बनाएगा
  • इस कौशल टैग को दस्तावेज़ के पहले बच्चे (कर्मचारी) में जोड़ें
  • कोड चलाएँ- नया टैग “बड़ा डेटा” विशेषज्ञता की अन्य सूची के साथ दिखाई देगा

XML पार्सर उदाहरण

Python 2 उदाहरण

import xml.dom.minidom

def main():
# use the parse() function to load and parse an XML file
   doc = xml.dom.minidom.parse("Myxml.xml");
  
# print out the document node and the name of the first child tag
   print doc.nodeName
   print doc.firstChild.tagName
  
# get a list of XML tags from the document and print each one
   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
#Write a new XML tag and add it into the document
   newexpertise = doc.createElement("expertise")
   newexpertise.setAttribute("name", "BigData")
   doc.firstChild.appendChild(newexpertise)
   print " "

   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
if name == "__main__":
  main();

Python 3 उदाहरण

import xml.dom.minidom

def main():
    # use the parse() function to load and parse an XML file
    doc = xml.dom.minidom.parse("Myxml.xml");

    # print out the document node and the name of the first child tag
    print (doc.nodeName)
    print (doc.firstChild.tagName)
    # get a list of XML tags from the document and print each one
    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

    # Write a new XML tag and add it into the document
    newexpertise = doc.createElement("expertise")
    newexpertise.setAttribute("name", "BigData")
    doc.firstChild.appendChild(newexpertise)
    print (" ")

    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

if __name__ == "__main__":
    main();

एलिमेंटट्री का उपयोग करके XML को पार्स कैसे करें

ElementTree XML में हेरफेर करने के लिए एक API है। ElementTree XML फ़ाइलों को प्रोसेस करने का आसान तरीका है।

हम नमूना डेटा के रूप में निम्नलिखित XML दस्तावेज़ का उपयोग कर रहे हैं:

<data>
   <items>
      <item name="expertise1">SQL</item>
      <item name="expertise2">Python</item>
   </items>
</data>

ElementTree का उपयोग करके XML पढ़ना:

हमें पहले xml.etree.ElementTree मॉड्यूल को आयात करना होगा।

import xml.etree.ElementTree as ET

अब मूल तत्व प्राप्त करें:

root = tree.getroot()

उपरोक्त xml डेटा को पढ़ने के लिए पूरा कोड निम्नलिखित है

import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()

# all items data
print('Expertise Data:')

for elem in root:
   for subelem in elem:
      print(subelem.text)

उत्पादन:

Expertise Data:
SQL
Python

सारांश

Python आपको एक बार में पूरे XML दस्तावेज़ को पार्स करने में सक्षम बनाता है, न कि एक बार में सिर्फ़ एक लाइन को। XML दस्तावेज़ को पार्स करने के लिए आपको पूरे दस्तावेज़ को मेमोरी में रखना होगा।

  • XML दस्तावेज़ को पार्स करने के लिए
  • xml.dom.minidom आयात करें
  • दस्तावेज़ को पार्स करने के लिए “parse” फ़ंक्शन का उपयोग करें ( doc=xml.dom.minidom.parse (फ़ाइल नाम);
  • कोड (=doc.getElementsByTagName( “xml टैग का नाम”) का उपयोग करके XML दस्तावेज़ से XML टैग की सूची को कॉल करें
  • XML दस्तावेज़ में नई विशेषता बनाने और जोड़ने के लिए
  • फ़ंक्शन “createElement” का उपयोग करें

इस पोस्ट को संक्षेप में इस प्रकार लिखें: