XML (eXtensible Markup Language) ist eine vielseitige Auszeichnungssprache, die häufig zur Kodierung von Dokumenten in einem Format verwendet wird, das sowohl für Menschen als auch für Maschinen lesbar ist. Dieses Format wird in großem Umfang für die Übertragung von Daten, die Erstellung von Konfigurationsdateien und die Entwicklung von Webdiensten verwendet.
In XML-Dokumenten sind die Elemente in Tags gekapselt, die den Anfang und das Ende jedes Elements kennzeichnen und eine klare Struktur für die Daten bieten.
Beispiel für XML:
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
Dieser Artikel befasst sich mit verschiedenen Bibliotheken und Methoden, die für das Parsen von XML in Python zur Verfügung stehen.
Im Folgenden werden wir uns mit den verschiedenen Bibliotheken beschäftigen, die für die XML-Datenextraktion in Python zur Verfügung stehen, und Sie durch den Installationsprozess führen, um Ihre Umgebung für die Arbeit mit XML-Dokumenten einzurichten.
xml.etree.ElementTree ist ein Standard-Bibliotheksmodul zum Parsen und Erstellen von XML-Daten. Es bietet ein effizientes und einfaches API zum Parsen von XML aus Strings und Dateien und zum Erstellen von XML-Dokumenten.
Basisches Beispiel:
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}')
Ausgabe:
xml.dom.minidom ist eine weitere integrierte Python-Bibliothek, die eine DOM-Darstellung (Document Object Model) von XML bietet. Diese Bibliothek ermöglicht eine detailliertere XML-Manipulation.
Basisches Beispiel:
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}')
Ausgabe:
BeautifulSoup ist eine beliebte Bibliothek zum Parsen von HTML- und XML-Dokumenten. Sie ist besonders nützlich für das Scraping von Webdaten und den Umgang mit schlecht geformtem XML.
Basisches Beispiel:
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}')
Output:
lxml ist eine leistungsstarke Bibliothek, die die Benutzerfreundlichkeit von ElementTree mit der Geschwindigkeit und den Funktionen der libxml2-Bibliothek kombiniert. Sie unterstützt sowohl XML- als auch HTML-Parsing.
Basisches Beispiel:
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}')
Ausgabe:
Die Umwandlung von XML in ein Wörterbuch kann nützlich sein, um XML-Daten flexibler zu bearbeiten und zu verarbeiten.
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)
Ausgabe:
Die Konvertierung von Daten aus dem XML- in das CSV-Format vereinfacht den Prozess der Analyse und Speicherung von Daten, erleichtert die Integration in Tabellenkalkulationsanwendungen und verbessert die Fähigkeit, Daten effektiv zu visualisieren.
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])
Beim Parsen von XML ist die Behandlung von Fehlern von entscheidender Bedeutung, um sicherzustellen, dass Ihr Code unerwartete oder schlecht geformte Daten korrekt verarbeiten kann.
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}')
Hier ist ein praktisches Beispiel für die Verwendung von BeautifulSoup zum Parsen von XML-Daten aus einer URL:
import requests # Importieren der Request-Bibliothek, um HTTP-Anfragen zu stellen
from bs4 import BeautifulSoup # Importieren von BeautifulSoup aus der bs4-Bibliothek zum Parsen von XML
# Definieren Sie die URL der XML-Daten
url = "https://httpbin.org/xml"
# Senden Sie eine GET-Anfrage an die URL
response = requests.get(url)
# Parsen des XML-Inhalts der Antwort mit BeautifulSoup
soup = BeautifulSoup(response.content, 'xml')
# Schleife durch alle 'slide'-Elemente in der XML-Datei
for slide in soup.find_all('slide'):
# Suchen Sie das Element "Titel" innerhalb jeder "Folie" und ermitteln Sie dessen Text
title = slide.find('title').text
# Drucken des Titeltextes
print(f'Title: {title}')
Ausgabe:
Zahlreiche Anwendungen nutzen das elementare Datenformat XML, von Webdiensten bis hin zu Konfigurationsdateien. Python verfügt über zahlreiche robuste Bibliotheken für das Parsen und die Manipulation von XML-Daten. Python verfügt über eine umfassende Bibliothek für das Parsen von XML-Daten, unabhängig davon, ob es sich um ein einfaches Data Mining oder eine aufwendige Dokumentenverarbeitung handelt. Ein Muss für Python-Webentwickler ist die Fähigkeit, XML sowohl für den Datenaustausch als auch für Web Scraping zu programmieren.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Bemerkungen: 0