कैसे parse XML पायथन में

टिप्पणियाँ: 0

XML, या एक्स्टेंसिबल मार्कअप भाषा, एक बहुमुखी मार्कअप भाषा है जो आमतौर पर एक प्रारूप में दस्तावेजों को एन्कोडिंग के लिए उपयोग की जाती है जो मानव-पठनीय और मशीन-पठनीय दोनों है। यह प्रारूप डेटा स्थानांतरित करने, कॉन्फ़िगरेशन फ़ाइल बनाने और वेब सेवाओं को विकसित करने के लिए बड़े पैमाने पर उपयोग किया जाता है।

XML दस्तावेजों में, तत्वों को उन टैगों के भीतर शामिल किया जाता है जो प्रत्येक तत्व की शुरुआत और अंत को दर्शाते हैं, जो डेटा के लिए एक स्पष्ट संरचना प्रदान करते हैं।

XML का उदाहरण:

<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
      </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>

यह लेख पायथन में XML को पार्स करने के लिए उपलब्ध विभिन्न पुस्तकालयों और तरीकों की पड़ताल करता है।

XML पार्सिंग के लिए पायथन लाइब्रेरीज़

अगला, हम पायथन में XML डेटा निष्कर्षण के लिए उपलब्ध विभिन्न पुस्तकालयों में तल्लीन करेंगे, और XML दस्तावेजों के साथ काम करने के लिए अपने वातावरण को स्थापित करने के लिए स्थापना प्रक्रिया के माध्यम से आपका मार्गदर्शन करेंगे।

xml.etree.ElementTree

XML.etree.ElementTree XML डेटा बनाने और बनाने के लिए एक मानक लाइब्रेरी मॉड्यूल है। यह स्ट्रिंग्स और फ़ाइलों से XML को पार्स करने और XML दस्तावेज़ बनाने के लिए एक कुशल और सीधा एपीआई प्रदान करता है।

मूल उदाहरण:


import xml.etree.ElementTree as ET

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

root = ET.fromstring(xml_data)

for item in root.findall('item'):
    name = item.find('name').text
    price = item.find('price').text
    print(f'Name: {name}, Price: {price}')

उत्पादन:

1.png

xml.dom.minidom

XML.DOM.Minidom एक अन्य अंतर्निहित पायथन लाइब्रेरी है जो XML का एक DOM (दस्तावेज़ ऑब्जेक्ट मॉडल) प्रतिनिधित्व प्रदान करता है। यह पुस्तकालय अधिक विस्तृत XML हेरफेर के लिए अनुमति देता है।

मूल उदाहरण:

from xml.dom.minidom import parseString

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

dom = parseString(xml_data)
items = dom.getElementsByTagName('item')

for item in items:
    name = item.getElementsByTagName('name')[0].firstChild.data
    price = item.getElementsByTagName('price')[0].firstChild.data
    print(f'Name: {name}, Price: {price}')

उत्पादन:

2.png

Beautifulsoup xml पार्सिंग

BeartherSoup HTML और XML दस्तावेजों को पार्स करने के लिए एक लोकप्रिय पुस्तकालय है। यह विशेष रूप से वेब डेटा को स्क्रैप करने और खराब रूप से गठित XML को संभालने के लिए उपयोगी है।

मूल उदाहरण:


from bs4 import BeautifulSoup

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

soup = BeautifulSoup(xml_data, 'xml')
items = soup.find_all('item')

for item in items:
    name = item.find('name').text
    price = item.find('price').text
    print(f'Name: {name}, Price: {price}')

उत्पादन:

3.png

lxml library

LXML एक शक्तिशाली पुस्तकालय है जो LIBXML2 लाइब्रेरी की गति और सुविधाओं के साथ एलिमेंट्री के उपयोग में आसानी को जोड़ती है। यह XML और HTML पार्सिंग दोनों का समर्थन करता है।

मूल उदाहरण:

from lxml import etree

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

root = etree.fromstring(xml_data)
items = root.findall('item')

for item in items:
    name = item.find('name').text
    price = item.find('price').text
    print(f'Name: {name}, Price: {price}')

उत्पादन:

4.png

डिक्शनरी रूपांतरण के लिए एक्सएमएल

XML को एक शब्दकोश में परिवर्तित करना अधिक लचीलेपन के साथ XML डेटा में हेरफेर और प्रसंस्करण के लिए उपयोगी हो सकता है।


import xml.etree.ElementTree as ET

def xml_to_dict(element):
    if len(element) == 0:
        return element.text
    return {child.tag: xml_to_dict(child) for child in element}

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

root = ET.fromstring(xml_data)
data_dict = xml_to_dict(root)
print(data_dict)

आउटपुट:

5.png

CSV रूपांतरण के लिए XML

XML से CSV प्रारूप में डेटा को परिवर्तित करना डेटा का विश्लेषण और संग्रहीत करने की प्रक्रिया को सरल बनाता है, जिससे स्प्रेडशीट अनुप्रयोगों के साथ एकीकृत करना और डेटा को प्रभावी ढंग से कल्पना करने की क्षमता बढ़ाना आसान हो जाता है।

import csv
import xml.etree.ElementTree as ET

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

root = ET.fromstring(xml_data)

with open('output.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['Name', 'Price'])
    
    for item in root.findall('item'):
        name = item.find('name').text
        price = item.find('price').text
        writer.writerow([name, price])

XML त्रुटियों को संभालना

XML को पार्स करते समय, त्रुटियों को संभालना यह सुनिश्चित करने के लिए महत्वपूर्ण है कि आपका कोड अप्रत्याशित या विकृत डेटा का प्रबंधन कर सकता है।

import xml.etree.ElementTree as ET

xml_data = """
<data>
    <item>
        <name>Item 1</name>
        <price>10</price>
    </item>
    <item>
        <name>Item 2</name>
        <price>20</price>
    </item>
</data>
"""

try:
    root = ET.fromstring(xml_data)
except ET.ParseError as e:
    print(f'Error parsing XML: {e}')

एक URL से XML को पार्स करना

यहाँ एक URL से XML डेटा को पार्स करने के लिए BeautifulSoup का उपयोग करके एक व्यावहारिक उदाहरण दिया गया है:

import requests  # HTTP अनुरोध करने के लिए अनुरोध पुस्तकालय आयात करना
from bs4 import BeautifulSoup  # XML को पार्स करने के लिए BS4 लाइब्रेरी से Beautilsoup आयात करना

# XML डेटा के URL को परिभाषित करें
url = "https://httpbin.org/xml"

# URL को एक अनुरोध प्राप्त करें
response = requests.get(url)

# BeautifulSoup का उपयोग करके प्रतिक्रिया की XML सामग्री को पार्स करें
soup = BeautifulSoup(response.content, 'xml')

# XML में सभी 'स्लाइड' तत्वों के माध्यम से लूप
for slide in soup.find_all('slide'):
    # प्रत्येक 'स्लाइड' के भीतर 'शीर्षक' तत्व खोजें और इसका पाठ प्राप्त करें
    title = slide.find('title').text
    # शीर्षक पाठ प्रिंट करें
    print(f'Title: {title}')

उत्पादन:

6 (1).png

विभिन्न एप्लिकेशन वेब सेवाओं से लेकर कॉन्फ़िगरेशन फ़ाइलों तक प्राथमिक डेटा प्रारूप XML का उपयोग करते हैं। पायथन में XML डेटा पार्सिंग के साथ -साथ हेरफेर के लिए कई मजबूत पुस्तकालयों की सुविधा है। पायथन के पास XML डेटा पार्सिंग के लिए एक व्यापक पुस्तकालय है कि क्या किसी को बुनियादी डेटा खनन या विस्तृत दस्तावेज़ प्रसंस्करण की आवश्यकता है। पायथन वेब डेवलपर्स को डेटा इंटरचेंज और वेब स्क्रैपिंग दोनों के लिए XML को कोड करने की क्षमता होनी चाहिए।

टिप्पणियाँ:

0 टिप्पणियाँ