Was ist XML?
XML steht für eXtensible Markup Language. Es wurde zum Speichern und Transportieren kleiner bis mittlerer Datenmengen entwickelt und wird häufig zum Austausch strukturierter Informationen verwendet.
Mit Python können Sie XML-Dokumente analysieren und ändern. Um XML-Dokumente zu analysieren, muss sich das gesamte XML-Dokument im Speicher befinden. In diesem Tutorial werden wir sehen, wie wir die XML-Minidom-Klasse in Python verwenden können, um XML-Dateien zu laden und zu analysieren.
In diesem Tutorial lernen wir:
- So analysieren Sie XML mit minidom
- So erstellen Sie einen XML-Knoten
- So analysieren Sie XML mit ElementTree
So analysieren Sie XML mit minidom
Wir haben eine XML-Beispieldatei erstellt, die wir analysieren werden.
Schritt 1) In der Datei sehen wir Vorname, Nachname, Heimat und den Fachbereich (SQL, Python, Testing und Business).
Schritt 2) Sobald wir das Dokument analysiert haben, drucken wir den "Knotennamen" des Stammverzeichnisses des Dokuments und den " firstchild tagname" aus . Tagname und Knotenname sind die Standardeigenschaften der XML-Datei.
- Importieren Sie das Modul xml.dom.minidom und deklarieren Sie die zu analysierende Datei (myxml.xml).
- Diese Datei enthält einige grundlegende Informationen über Mitarbeiter wie Vorname, Nachname, Wohnort, Fachwissen usw.
- Wir verwenden die Analysefunktion in der XML-Minidom, um die XML-Datei zu laden und zu analysieren
- Wir haben die Variable doc und doc erhält das Ergebnis der Analysefunktion
- Wir möchten den Knotennamen und den untergeordneten Tagnamen aus der Datei drucken, also deklarieren wir ihn in der Druckfunktion
- Führen Sie den Code aus. Er druckt den Knotennamen (#document) aus der XML-Datei und den ersten untergeordneten Tagnamen (Mitarbeiter) aus der XML-Datei aus
Hinweis :
Knotenname und untergeordneter Tagname sind die Standardnamen oder -eigenschaften eines XML-Doms. Falls Sie mit diesen Namenskonventionen nicht vertraut sind.
Schritt 3) Wir können auch die Liste der XML-Tags aus dem XML-Dokument aufrufen und ausdrucken. Hier haben wir eine Reihe von Fähigkeiten wie SQL, Python, Testing und Business ausgedruckt.
- Deklarieren Sie das variable Fachwissen, aus dem wir alle Fachkenntnisse extrahieren, über die der Mitarbeiter verfügt
- Verwenden Sie die dom-Standardfunktion "getElementsByTagName".
- Dadurch erhalten Sie alle Elemente, die als Fertigkeit bezeichnet werden
- Deklarieren Sie die Schleife über jedem der Skill-Tags
- Führen Sie den Code aus. Es wird eine Liste mit vier Fertigkeiten angezeigt
So erstellen Sie einen XML-Knoten
Wir können ein neues Attribut mithilfe der Funktion "createElement" 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 eingeben, um das neue Attribut (BigData) zum vorhandenen XML-Tag hinzuzufügen
- Anschließend müssen Sie das XML-Tag mit neuen Attributen ausdrucken, die an das vorhandene XML-Tag angehängt sind
- Um ein neues XML hinzuzufügen und es dem Dokument hinzuzufügen, verwenden wir den Code "doc.create elements".
- Dieser Code erstellt ein neues Skill-Tag für unser neues Attribut "Big-Data".
- Fügen Sie dieses Skill-Tag dem ersten Kind (Mitarbeiter) des Dokuments hinzu.
- Führen Sie den Code aus - das neue Tag "Big Data" wird zusammen mit der anderen Liste der Fachkenntnisse angezeigt
XML-Parser-Beispiel
Python 2 Beispiel
importiere xml.dom.minidomdef main ():# Verwenden Sie die Funktion parse (), um eine XML-Datei zu laden und zu analysierendoc = xml.dom.minidom.parse ("Myxml.xml");# Drucken Sie den Dokumentknoten und den Namen des ersten untergeordneten Tags ausprint doc.nodeNameprint doc.firstChild.tagName# Holen Sie sich eine Liste der XML-Tags aus dem Dokument und drucken Sie jedes ausExpertise = doc.getElementsByTagName ("Expertise")print "% d Fachwissen:"% Fachwissen.Längefür Fachkenntnisse:print feature.getAttribute ("name")# Erstellen Sie ein neues XML-Tag und fügen Sie es dem Dokument hinzunewexpertise = doc.createElement ("Fachwissen")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (neue Expertise)drucken " "Expertise = doc.getElementsByTagName ("Expertise")print "% d Fachwissen:"% Fachwissen.Längefür Fachkenntnisse:print feature.getAttribute ("name")if name == "__main__":Main();
Python 3 Beispiel
importiere xml.dom.minidomdef main ():# Verwenden Sie die Funktion parse (), um eine XML-Datei zu laden und zu analysierendoc = xml.dom.minidom.parse ("Myxml.xml");# Drucken Sie den Dokumentknoten und den Namen des ersten untergeordneten Tags ausprint (doc.nodeName)print (doc.firstChild.tagName)# Holen Sie sich eine Liste der XML-Tags aus dem Dokument und drucken Sie jedes ausExpertise = doc.getElementsByTagName ("Expertise")Drucken ("% d Fachwissen:"% Fachwissen.Länge)für Fachkenntnisse:print (Skill.getAttribute ("Name"))# Erstellen Sie ein neues XML-Tag und fügen Sie es dem Dokument hinzunewexpertise = doc.createElement ("Fachwissen")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (neue Expertise)drucken (" ")Expertise = doc.getElementsByTagName ("Expertise")Drucken ("% d Fachwissen:"% Fachwissen.Länge)für Fachkenntnisse:print (Skill.getAttribute ("Name"))if __name__ == "__main__":Main();
So analysieren Sie XML mit ElementTree
ElementTree ist eine API zum Bearbeiten von XML. ElementTree ist die einfache Möglichkeit, XML-Dateien zu verarbeiten.
Wir verwenden das folgende XML-Dokument als Beispieldaten:
- SQL
- Python
XML mit ElementTree lesen:
Wir müssen zuerst das Modul xml.etree.ElementTree importieren.
import xml.etree.ElementTree as ET
Holen wir uns nun das Wurzelelement:
root = tree.getroot()
Im Folgenden finden Sie den vollständigen Code zum Lesen der obigen XML-Daten
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)Ausgabe:
Expertise Data:SQLPython
Zusammenfassung:
Mit Python können Sie das gesamte XML-Dokument auf einmal und nicht nur eine Zeile gleichzeitig analysieren. Um XML-Dokumente zu analysieren, muss sich das gesamte Dokument im Speicher befinden.
- XML-Dokument analysieren
- Importieren Sie xml.dom.minidom
- Verwenden Sie die Funktion "parse", um das Dokument zu analysieren (doc = xml.dom.minidom.parse (Dateiname);
- Rufen Sie die Liste der XML-Tags aus dem XML-Dokument mit Code auf (= doc.getElementsByTagName ("Name der XML-Tags").
- So erstellen Sie ein neues Attribut im XML-Dokument und fügen es hinzu
- Verwenden Sie die Funktion "createElement"