Python XML-Datei – Lesen, Schreiben und Analysieren
⚡ Intelligente Zusammenfassung
Python Die XML-Verarbeitung ermöglicht das Lesen, Schreiben und Parsen von XML-Dokumenten mithilfe der integrierten Module minidom und ElementTree. Die Klasse minidom lädt eine Datei als DOM in den Speicher, während ElementTree eine schnellere und effizientere Methode bietet. Pythonic tree API.
Die folgenden Abschnitte behandeln das Parsen, Schreiben und Lesen von XML-Dateien in Python.
Was ist XML?
XML steht für eXtensible Markup Language. Es wurde für die Speicherung und den Transport kleiner bis mittlerer Datenmengen entwickelt und wird häufig zum Austausch strukturierter Informationen verwendet.
Python Ermöglicht das Parsen und Bearbeiten von XML-Dokumenten. Um ein XML-Dokument zu parsen, muss das gesamte Dokument im Speicher vorliegen. In diesem Tutorial zeigen wir, wie die XML-Minidom-Klasse verwendet werden kann. Python um XML-Dateien zu laden und zu analysieren.
So analysieren Sie XML mit Minidom
Wir haben eine Beispiel-XML-Datei erstellt, die wir analysieren werden.
Schritt 1) Erstellen Sie eine Beispiel-XML-Datei
In der Datei sehen wir den Vornamen, Nachnamen, Wohnort und das Fachgebiet (SQL, Python, Testen und Geschäft).
Schritt 2) Verwenden Sie die Parse-Funktion, um die XML-Datei zu laden und zu analysieren
Nachdem wir das Dokument analysiert haben, geben wir den „Knotennamen“ des Wurzelknotens und den „Tagnamen des ersten Kindknotens“ aus. Tagname und Knotenname sind Standardeigenschaften der XML-Datei.
- Importieren Sie das Modul xml.dom.minidom und deklarieren Sie die zu parsende Datei (myxml.xml).
- Diese Datei enthält einige grundlegende Informationen über einen Mitarbeiter wie Vorname, Nachname, Wohnort, Fachwissen usw.
- Wir verwenden die Parse-Funktion auf dem XML-Minidom, um die XML-Datei zu laden und zu analysieren
- Wir haben eine Variable doc, und doc erhält das Ergebnis der Parse-Funktion.
- Wir möchten den Knotennamen und den Namen des untergeordneten Tags aus der Datei ausgeben, daher deklarieren wir dies in der print-Funktion.
- Führen Sie den Code aus. Er gibt den Knotennamen (#document) aus der XML-Datei und den ersten untergeordneten Tagnamen (Mitarbeiter) aus der XML-Datei aus
HinweisNodename und child tagname sind die Standardnamen bzw. Eigenschaften eines XML-DOMs.
Schritt 3) Rufen Sie die Liste der XML-Tags aus dem XML-Dokument auf und geben Sie sie aus.
Als Nächstes können wir die Liste der XML-Tags aus dem XML-Dokument abrufen und ausgeben. Hier haben wir die Liste der Fähigkeiten wie SQL ausgegeben. Python, Tests und Geschäft.
- Deklarieren Sie die Variable Expertise, aus der wir extracalle Expertennamen, die der Mitarbeiter hat
- Verwenden Sie die Dom-Standardfunktion namens „getElementsByTagName“.
- Dadurch werden alle Elemente mit dem Namen „skill“ abgerufen
- Deklariere eine Schleife über jedes einzelne der Skill-Tags.
- Führen Sie den Code aus – er liefert eine Liste mit vier Fähigkeiten.
So schreiben Sie einen XML-Knoten
Mit der Funktion „createElement“ können wir ein neues Attribut erstellen und dieses neue Attribut oder Tag dann an die vorhandenen XML-Tags anhängen. Wir haben unserer XML-Datei ein neues Tag „BigData“ hinzugefügt.
- Sie müssen Code schreiben, um das neue Attribut (BigData) zum bestehenden XML-Tag hinzuzufügen.
- Anschließend müssen Sie das XML-Tag mit dem angehängten neuen Attribut ausdrucken.
- Um ein neues XML-Tag hinzuzufügen und es dem Dokument einzufügen, verwenden wir den Code „doc.createElement“.
- Dieser Code erstellt ein neues Skill-Tag für unser neues Attribut „BigData“.
- Fügen Sie dieses Kompetenz-Tag dem ersten untergeordneten Element (Mitarbeiter) des Dokuments hinzu.
- Führen Sie den Code aus – das neue Tag „BigData“ erscheint dann in der Liste der Fachgebiete.
Beispiel für einen XML-Parser
Python 2 Beispiel
import xml.dom.minidom def main(): # use the parse() function to load and parse an XML file doc = xml.dom.minidom.parse("Myxml.xml"); # print out the document node and the name of the first child tag print doc.nodeName print doc.firstChild.tagName # get a list of XML tags from the document and print each one expertise = doc.getElementsByTagName("expertise") print "%d expertise:" % expertise.length for skill in expertise: print skill.getAttribute("name") #Write a new XML tag and add it into the document newexpertise = doc.createElement("expertise") newexpertise.setAttribute("name", "BigData") doc.firstChild.appendChild(newexpertise) print " " expertise = doc.getElementsByTagName("expertise") print "%d expertise:" % expertise.length for skill in expertise: print skill.getAttribute("name") if name == "__main__": main();
Python 3 Beispiel
import xml.dom.minidom def main(): # use the parse() function to load and parse an XML file doc = xml.dom.minidom.parse("Myxml.xml"); # print out the document node and the name of the first child tag print (doc.nodeName) print (doc.firstChild.tagName) # get a list of XML tags from the document and print each one expertise = doc.getElementsByTagName("expertise") print ("%d expertise:" % expertise.length) for skill in expertise: print (skill.getAttribute("name")) # Write a new XML tag and add it into the document newexpertise = doc.createElement("expertise") newexpertise.setAttribute("name", "BigData") doc.firstChild.appendChild(newexpertise) print (" ") expertise = doc.getElementsByTagName("expertise") print ("%d expertise:" % expertise.length) for skill in expertise: print (skill.getAttribute("name")) if __name__ == "__main__": main();
So analysieren Sie XML mit ElementTree
ElementTree ist eine API zur Bearbeitung von XML-Dateien. ElementTree bietet eine einfache Möglichkeit, XML-Dateien zu verarbeiten.
Wir verwenden das folgende XML-Dokument als Beispieldaten:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
XML mit ElementTree lesen:
Zuerst müssen wir das Modul xml.etree.ElementTree importieren.
import xml.etree.ElementTree as ET
Nun holen wir uns das Wurzelelement:
root = tree.getroot()
Nachfolgend der vollständige Code zum Einlesen der obigen XML-Daten:
import xml.etree.ElementTree as ET tree = ET.parse('items.xml') root = tree.getroot() # all items data print('Expertise Data:') for elem in root: for subelem in elem: print(subelem.text)
Ausgang:
Expertise Data: SQL Python





