de
English
Español
中國人
Tiếng Việt
Українська
Português
Français
भारतीय
Türkçe
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski Das Parsen von XML ist eine häufige Aufgabe für Entwickler, die mit Datenaustausch, Konfigurationsdateien und API-Antworten arbeiten. XML (eXtensible Markup Language) bietet ein strukturiertes, tagbasiertes Format, das sowohl maschinenlesbar als auch für Menschen lesbar ist. Ganz gleich, ob Sie einen Integrationsdienst aufbauen oder Daten für Analysen bereinigen - wenn Sie wissen, wie Sie XML mithilfe der Python-XML-Parser-Bibliothek effizient handhaben, können Sie Ihre Arbeitsabläufe erheblich rationalisieren.
XML ist eine Auszeichnungssprache, die Daten in einer baumartigen Struktur mit verschachtelten Elementen speichert. Jedes Datenelement wird von öffnenden und schließenden Tags umschlossen, die Attribute enthalten können. Zum Beispiel:
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
</data>
Entwickler müssen häufig XML in Python parsen, wenn sie mit APIs, Datenmigration oder Konfigurationseinstellungen zu tun haben. Im Gegensatz zu JSON kann XML Namespaces, gemischte Inhalte und tief verschachtelte Strukturen enthalten, was das Parsen ohne die richtigen Tools erschwert.
Die Wahl der richtigen Python XML-Parser-Bibliothek hängt von Ihrem Anwendungsfall ab:
ElementTree (eingebaut): einfach und schnell, gut geeignet für kleine bis mittelgroße XML-Dateien. import xml.etree.ElementTree as ET
minidom (eingebaut): bietet ein vollständiges DOM-Modell, nützlich für präzise Baummanipulation. from xml.dom.minidom import parseString
BeautifulSoup (Drittanbieter): verzeihender Parser, nützlich für unordentliches oder fehlerhaftes XML. from bs4 import BeautifulSoup
lxml (Drittanbieter): schnell und leistungsstark, unterstützt XPath, Schema-Validierung. from lxml import etree
In vielen realen Szenarien werden XML-Daten in Dateien gespeichert - sei es in Form von exportierten Berichten, Konfigurationsdateien oder Datenfeeds aus anderen Systemen. Python bietet mehrere Optionen, und eine häufig verwendete Python-XML-Parser-Bibliothek macht es einfach, diese Dateien zu öffnen und Informationen zu extrahieren. Im Folgenden finden Sie Beispiele für das Parsen von XML aus lokalen Dateien mit verschiedenen Ansätzen.
Um XML-Dateien zu lesen, beginnen Python-Benutzer oft mit ElementTree:
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
for item in root.findall('item'):
name = item.find('name').text
price = item.find('price').text
print(f"Name: {name}, Price: {price}")
Mit minidom arbeiten Sie mit einem DOM-Baum:
from xml.dom.minidom import parse
dom = parse('example.xml')
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}")
Nach der Extraktion von Informationen aus XML ist es oft nützlich, die Daten in Python-freundliche Formate umzuwandeln. Mit einer Python-XML-Parser-Bibliothek können Sie XML ganz einfach in Wörterbücher oder Datenrahmen konvertieren, was die Verarbeitung, Analyse oder Integration mit anderen Tools vereinfacht. Im Folgenden werden zwei gängige Ansätze vorgestellt: die Konvertierung von XML in ein Wörterbuch zur einfachen Verarbeitung und der Export von XML in CSV zur strukturierten Analyse mit Pandas.
Sie können XML mithilfe einer rekursiven Funktion in ein Wörterbuch umwandeln. Dies ist hilfreich bei der Arbeit mit JSON-ähnlichen Datenstrukturen:
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 = ET.fromstring('<data><item><name>Item</name></item></data>')
print(xml_to_dict(xml_data))
Dies ist ein praktisches Beispiel für einen Python-Xml-Parser, der strukturierte Daten in Python-eigene Formate konvertiert.
import pandas as pd
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
rows = []
for item in root.findall('item'):
name = item.find('name').text
price = item.find('price').text
rows.append({'name': name, 'price': price})
df = pd.DataFrame(rows)
df.to_csv('output.csv', index=False)
Wenn das XML fehlerhaft ist oder nur teilweise heruntergeladen wurde, verwenden Sie lxml oder BeautifulSoup für eine tolerante Behandlung:
from bs4 import BeautifulSoup
try:
soup = BeautifulSoup(broken_xml, 'xml')
except Exception as e:
print("Error parsing XML:", e)
Diese Strategie ist besonders nützlich, wenn Sie XML Python BeautifulSoup in Web-Scraping-Aufgaben parsen.
Einige häufige Probleme sind:
Die Verwendung des richtigen Python xml-Moduls und eine sorgfältige Vorverarbeitung helfen, diese Fallstricke zu vermeiden.
Um XML aus einer Live-URL zu parsen, verwenden Sie Anfragen mit einem Parser:
import requests
from bs4 import BeautifulSoup
url = "https://httpbin.org/xml"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'xml')
for slide in soup.find_all('slide'):
title = slide.find('title').text
print(f"Title: {title}")
Diese Technik ist auch bei der Arbeit mit APIs oder RSS-Feeds hilfreich. Dies ist ein Beispiel für Python-Code zum Parsen von XML-Dateien direkt aus dem Web.
Python bietet eine Vielzahl von Tools für den Umgang mit XML - von einfachen Aufgaben bis hin zu komplexer Verarbeitung. Wenn Sie auf der Suche nach dem besten Python-XML-Parser sind, sollten Sie lxml wegen der Geschwindigkeit, BeautifulSoup wegen der Nachsicht und ElementTree wegen der Einfachheit in Betracht ziehen. Ihre Wahl hängt von Ihrer Datenstruktur und Ihren Anforderungen an die Zuverlässigkeit ab. Wenn Sie wissen, wie man XML in Python parst, verfügen Sie über wichtige Fähigkeiten für die Arbeit mit externen Daten, APIs und Legacy-Systemen.
Bemerkungen: 0