Cé chomh parse xml i python

Tuairimí: 0

Is teanga marcála ildánach í XML, nó Teanga Markup In-Extensible, a úsáidtear go coitianta chun doiciméid a ionchódú i bhformáid atá inléite ag an duine agus atá inléite ag an duine. Úsáidtear an fhormáid seo go forleathan chun sonraí a aistriú, comhaid chumraíochta a chruthú, agus seirbhísí gréasáin a fhorbairt.

I ndoiciméid XML, cuimsítear eilimintí laistigh de chlibeanna a léiríonn tús agus deireadh gach eilimint, ag soláthar struchtúr soiléir do na sonraí.

Sampla de XML:

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

Scrúdaíonn an t -alt seo leabharlanna agus modhanna éagsúla atá ar fáil chun XML a pharsáil i Python.

Leabharlanna Python le haghaidh Parsing XML

Ansin, déanfaimid na leabharlanna éagsúla atá ar fáil le haghaidh eastóscadh sonraí XML i Python, agus déanfaimid tú a threorú tríd an bpróiseas suiteála chun do thimpeallacht a bhunú chun oibriú le doiciméid XML.

xml.etree.ElementTree

Is modúl caighdeánach leabharlainne é Xml.eTree.ElementTree chun sonraí XML a pharsáil agus a chruthú. Soláthraíonn sé API éifeachtach agus simplí chun XML a pharsáil ó teaghráin agus comhaid agus chun doiciméid XML a chruthú.

Sampla Bunúsach:


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}')

Aschur:

1.png

xml.dom.minidom

Is leabharlann eile de chuid Python é Xml.dom.Minidom a sholáthraíonn léiriú DOM (Samhail Doiciméid Cuspóir) de XML. Ceadaíonn an leabharlann seo ionramháil XML níos mionsonraithe.

Sampla bunúsach:

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}')

Aschur:

2.png

Beautifulsoup Xml Parsing

Is leabharlann coitianta é Beautifulsoup chun doiciméid HTML agus XML a pharsáil. Tá sé thar a bheith úsáideach chun sonraí gréasáin a scríobadh agus chun XML nach bhfuil foirmithe go maith a láimhseáil.

Sampla Bunúsach:


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}')

Aschur:

3.png

lxml library

Is leabharlann chumhachtach é LXML a chomhcheanglaíonn éascaíocht úsáid eilimint le luas agus le gnéithe leabharlainne LIBXML2. Tacaíonn sé le parsáil XML agus HTML araon.

Sampla Bunúsach:

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}')

Aschur:

4.png

Xml to Foclóir Comhshó

Is féidir le XML a athrú go foclóir a bheith úsáideach chun sonraí XML a láimhseáil agus a phróiseáil le níos mó solúbthachta.


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)

Aschur:

5.png

XML go comhshó CSV

Nuair a dhéantar sonraí ó XML go formáid CSV a athrú, cuirtear an próiseas chun sonraí a anailísiú agus a stóráil i bhfeidhm, rud a chiallaíonn go bhfuil sé níos éasca é a chomhtháthú le feidhmchláir scarbhileoige agus an cumas sonraí a shamhlú go héifeachtach.

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])

Earráidí XML a láimhseáil

Nuair a bhíonn XML á pharsáil, tá sé ríthábhachtach earráidí láimhseála a chinntiú chun a chinntiú gur féidir le do chód sonraí gan choinne nó mífhoirmiú a bhainistiú go galánta.

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}')

Parsáil XML ó URL

Seo sampla praiticiúil ag baint úsáide as BeautifulSoup chun sonraí XML a pharsáil ó URL:

import requests  # Leabharlann na n -iarrataí a allmhairiú chun iarratais HTTP a dhéanamh
from bs4 import BeautifulSoup  # Allmhairiú Beautifulsoup ón Leabharlann BS4 chun XML a pharsáil

# Sainmhínigh URL na sonraí XML
url = "https://httpbin.org/xml"

# Seol iarratas ar an URL
response = requests.get(url)

# Parse an t -ábhar XML den fhreagra ag úsáid BeautifulSoup
soup = BeautifulSoup(response.content, 'xml')

# Lúb trí gach eilimint 'sleamhnán' sa XML
for slide in soup.find_all('slide'):
    # Faigh an eilimint 'teideal' laistigh de gach 'sleamhnán' agus faigh a théacs
    title = slide.find('title').text
    # Priontáil an téacs teidil
    print(f'Title: {title}')

Aschur:

6 (1).png

Baineann iarratais éagsúla úsáid as an bhformáid bhunaidh sonraí XML ó sheirbhísí gréasáin go comhaid chumraíochta. Tá go leor leabharlanna láidre i gceist le Python le haghaidh parsáil sonraí XML chomh maith le cúbláil. Tá leabharlann chuimsitheach ag Python le haghaidh sonraí XML ag parsáil cibé an bhfuil gá le mianadóireacht bhunúsach sonraí nó próiseáil doiciméad ilchasta. Is é an cumas atá ag forbróirí gréasáin Python ná XML a chódú le haghaidh idirmhalartaithe sonraí agus scríobadh gréasáin araon.

Tuairimí:

0 tuairimí