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

पायथन में XML पार्सिंग: ElementTree के साथ


पायथन XML पार्सर XML फाइल से उपयोगी जानकारी पढ़ने और निकालने के सबसे आसान तरीकों में से एक प्रदान करता है। इस छोटे ट्यूटोरियल में हम देखेंगे कि कैसे हम पायथन ElementTree XML API का उपयोग करके XML फाइल को पार्स, संशोधित और बना सकते हैं।

पायथन ElementTree API XML डेटा को निकालने, पार्स करने और ट्रांसफॉर्म करने के सबसे आसान तरीकों में से एक है।

उदाहरण 1: XML फाइल बनाना

सबसे पहले हम एक रूट एलिमेंट और एक सब-एलिमेंट के साथ एक नई XML फाइल बनाने जा रहे हैं।

# आवश्यक लाइब्रेरी इम्पोर्ट करें
import xml.etree.ElementTree as xml

def createXML(filename):
    # रूट एलिमेंट से शुरू करें
    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")

उपरोक्त प्रोग्राम चलाने के बाद, हमारे वर्तमान डिफ़ॉल्ट वर्किंग डायरेक्टरी में "testXML.xml" नाम से एक नई फाइल बनती है:

<users><user /></users>

कृपया ध्यान दें कि फाइल लिखते समय हमने 'wb' मोड का उपयोग किया है यानी फाइल को बाइनरी मोड में लिखें।

XML एलिमेंट्स में मान जोड़ना

आइए अपने उपरोक्त प्रोग्राम में XML एलिमेंट्स को कुछ मान दें:

import xml.etree.ElementTree as xml

def createXML(filename):
    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>

आइए प्रत्येक यूजर की सैलरी अपडेट करने का प्रयास करें:

import xml.etree.ElementTree as ET

def updateET(filename):
    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")

आउटपुट में हम देख सकते हैं कि सैलरी 'NA' से '500000' में बदल गई है।

उदाहरण: पायथन XML पार्सर

अब आइए एक और प्रोग्राम लिखते हैं जो फाइल में मौजूद XML डेटा को पार्स करेगा और डेटा प्रिंट करेगा।

import xml.etree.cElementTree as ET

def parseXML(file_name):
    # ElementTree के साथ XML पार्स करें
    tree = ET.ElementTree(file=file_name)
    print(tree.getroot())
    root = tree.getroot()
    print("tag=%s, attrib=%s" % (root.tag, root.attrib))
    
    # बच्चों के माध्यम से जानकारी प्राप्त करें!
    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() फंक्शन

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

  1. - पायथन डिक्शनरी से XML कैसे जनरेट करें?

    पायथन डिक्शनरी से XML जनरेट करने के लिए, आपको dicttoxml पैकेज इंस्टॉल करना होगा। आप इसे इस प्रकार इंस्टॉल कर सकते हैं: $ pip install dicttoxml एक बार इंस्टॉल हो जाने पर, आप XML बनाने के लिए dicttoxml मेथड का उपयोग कर सकते हैं। उदाहरण a = { foo: 45, bar: { baz: Hello } } xml = di

  1. - Python डिक्शनरी को XML में कैसे सीरियलाइज़ करें?

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