Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में एक्सएमएल पार्सिंग?

पायथन एक्सएमएल पार्सर पार्सर एक्सएमएल फाइल से उपयोगी जानकारी को पढ़ने और निकालने का सबसे आसान तरीका प्रदान करता है। इस संक्षिप्त ट्यूटोरियल में हम यह देखने जा रहे हैं कि कैसे हम 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

  1. issuperset () पायथन में

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे। यह विधि बूलियन ट्रू लौटाती है यदि एक सेट बी के सभी तत्वों में सभी तत्व सेट ए होते हैं जो एक तर्क के रूप में पारित होते हैं और यदि ए के सभी तत्व बी में मौजूद नहीं होते हैं तो झूठा रिटर्न देता है। इस

  1. पायथन डिक्शनरी से एक्सएमएल कैसे उत्पन्न करें?

    एक अजगर शब्दकोश से XML उत्पन्न करने के लिए, आपको dicttoxml पैकेज स्थापित करने की आवश्यकता है। आप इसका उपयोग करके इसे स्थापित कर सकते हैं: $ pip install dicttoxml इंस्टॉल हो जाने के बाद, आप xml बनाने के लिए dicttoxml विधि का उपयोग कर सकते हैं। उदाहरण a = {    'foo': 45,   &nbs

  1. एक्सएमएल में पायथन डिक्शनरी को क्रमबद्ध कैसे करें?

    पायथन डिक्शनरी को xml रिप्रेजेंटेशन में बदलने के लिए dicttoxml पैकेज का उपयोग करें। शुरू करने के लिए, dicttoxml . इंस्टॉल करें पैकेज pip3 install dicttoxml एक शब्दकोश वस्तु बनाएं >>> D1={"name":"Ravi", "age":21, "marks":55} अब dicttoxml () फ़ंक्शन