目次
1. Einführung
Python ist eine flexible Programmiersprache, die es einfach macht, verschiedene Datenformate zu handhaben. Insbesondere wird XML (Extensible Markup Language) häufig für den Austausch und die Speicherung strukturierter Daten verwendet und findet breite Anwendung in API-Antworten und Konfigurationsdateien. In Python kann XML mit Standardbibliotheken oder externen Bibliotheken einfach manipuliert werden. In diesem Artikel erklären wir die grundlegenden bis zu fortgeschrittenen Operationen mit XML in Python auf verständliche Weise.2. Einführung in Bibliotheken zum Umgang mit XML in Python
2.1 Standardbibliothek: xml.etree.ElementTree
Die Standardbibliothek von Python,xml.etree.ElementTree
, ist ein nützliches Tool, das das Lesen und Schreiben von XML-Dateien sowie das Erkunden und Bearbeiten der Baumstruktur einfach ermöglicht.- Grundlagen des Parsens:
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() print(root.tag) # Ausgabe: "data"
In diesem Code wird die XML-Dateidata.xml
gelesen und das Tag des Root-Elements angezeigt. Sie können überprüfen, dass das Ausgabeergebnis „data“ ist. - Fehlerbehandlung, wenn die Datei nicht existiert:
Wenn die Datei nicht existiert, wird
FileNotFoundError
ausgelöst, daher können Sie eine Ausnahmebehandlung wie folgt hinzufügen.try: tree = ET.parse('data.xml') root = tree.getroot() except FileNotFoundError: print("Die Datei wurde nicht gefunden.")
2.2 Externe Bibliothek: lxml
Für fortgeschrittene XML-Operationen wird dielxml
-Bibliothek empfohlen. lxml
unterstützt leistungsstarke XML-Verarbeitung mit XPath und XSLT und ermöglicht Operationen, die mit der Standardbibliothek schwierig zu realisieren sind, einfach.- Erhalten von Elementen mit XPath:
from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country[@name="Liechtenstein"]') print(countries[0].tag) # Ausgabe: "country"
In diesem Code wird dascountry
-Element abgerufen, dessenname
-Attribut „Liechtenstein“ ist.

3. XML-Parsing und -Manipulation
3.1 Grundlegende Parsing-Schritte
Um XML-Dateien zu parsen und die Baumstruktur zu manipulieren, verwenden Sieparse()
aus xml.etree.ElementTree
. Mit dieser Methode lesen Sie die XML-Datei ein und erhalten das Root-Element des Baums.- Parsing aus einer Datei:
import xml.etree.ElementTree as ET tree = ET.parse('example.xml') root = tree.getroot() print(root.tag) # Ausgabe: "rootTag"
Dieser Code liest die XML-Dateiexample.xml
ein und zeigt den Tag-Namen des Root-Elements an.
3.2 Suche nach Elementen und Bearbeitung von Attributen
Zur Suche nach XML-Elementen verwenden Siefind()
oder findall()
. Damit können Sie spezifische Elemente oder Attribute einfach abrufen.- Suche nach Elementen und Abruf von Attributen:
country = root.find('country') print(country.get('name')) # Ausgabe: "Liechtenstein"
- Bearbeitung von Attributen:
Um Attribute von XML-Elementen zu bearbeiten, rufen Sie sie mit
get()
ab und setzen sie mitset()
.country.set('currency', 'CHF') print(country.attrib) # Ausgabe: {'name': 'Liechtenstein', 'currency': 'CHF'}
4. Bearbeitung und Speicherung von XML
4.1 Methode zum Bearbeiten von Elementen
Durch Ändern des Texts oder der Attribute von XML-Elementen können Sie den Inhalt der XML bearbeiten. Zum Beispiel gehen Sie wie folgt vor, um den Text eines Elements zu ändern.- Bearbeitung des Elementtexts:
rank = root.find('.//rank') rank.text = '2' print(rank.text) # Ausgabe: "2"
4.2 Ausgabe in XML-Datei
Um die geänderte XML in eine Datei zu speichern, verwenden Sie diewrite()
-Methode.- Speichern der XML:
tree.write('updated_data.xml')

5. Anwendungsverarbeitung mit externen Bibliotheken
5.1 Fortgeschrittene XML-Operationen mit lxml
lxml
-Bibliothek ermöglicht komplexe Suchen mit XPath oder die Umwandlung von XML in andere Formate mit XSLT.- Suche nach Elementen mit XPath:
from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country') for country in countries: print(country.get('name'))
5.2 XML-Transformation mit XSLT
Ein Beispiel für die Umwandlung von XML zu HTML mit XSLT wird vorgestellt.- Umwandlung von XML zu HTML:
from lxml import etree xml_tree = etree.parse('data.xml') xsl_tree = etree.parse('style.xsl') transform = etree.XSLT(xsl_tree) result_tree = transform(xml_tree) result_tree.write('output.html', pretty_print=True)
6. Praxis: Beispielcode und Erläuterung
6.1 Beispiel zum Extrahieren von Daten aus XML
XML-Datei aus Daten extrahieren und spezifische Informationen anzeigen Beispielcode.- Beispielcode:
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() for country in root.findall('country'): name = country.get('name') rank = country.find('rank').text print(f"Country: {name}, Rank: {rank}")
6.2 Beispiel zum Bearbeiten und Speichern von XML
XML-Elementwerte bearbeiten und geänderten Inhalt speichern Beispielcode.- Beispielcode:
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() rank = root.find('.//rank') rank.text = '2' tree.write('updated_data.xml')
7. Zusammenfassung
Beim Umgang mit XML in Python kann durch die Verwendung der Standardbibliothekxml.etree.ElementTree
grundlegende XML-Operationen einfach durchgeführt werden. Darüber hinaus ermöglicht lxml
fortgeschrittene Operationen wie XPath oder XSLT. Verwenden Sie den im Artikel vorgestellten Code als Referenz und versuchen Sie, XML tatsächlich zu manipulieren.