Python XML ElementTree

Python XML ElementTree
Wir können XML. Es wird angenommen, dass ein Baum das gesamte Dokument darstellt. In diesem Baum steht das Element für einen einzelnen Knoten oder Ast. In XML erfolgt das Lesen oder Schreiben in oder von Dateien hauptsächlich auf ElementTree -Ebene, während die Interaktion mit den Elementen auf der Elementebene basiert. Das Python ElementTree -Modul wird zum Bearbeiten und Hinzufügen von Daten zu XML -Dateien verwendet, während wir lernen, wie Sie XML in diesem Tutorial mit Python analysieren können. Wir werden auch XPath -Ausdrücke und XML -Bäume untersuchen, um die Daten zu verstehen.

Das XML -Framework nutzt es, um Daten dynamisch zu verstehen. Es befasst sich hauptsächlich mit dem Aufbau von Webseiten mit Daten, die einem vorgegebenen Format folgen. XML, auch als XML -Dokument bezeichnet, wird verwendet, um eine Seite zu generieren. Eine einfache, hierarchische Struktur, die einem Baum ähnelt, wird unter Verwendung von XML erzeugt. Das Hauptziel dieses Beitrags ist es, Ihnen zu zeigen, wie Sie Dateien mit Python lesen und verstehen können.

Die Beispieldaten für diesen Teil werden aus dem folgenden XML -Dokument entnommen:

Nach dem, was Sie in der XML -Datei gelesen haben, können Sie feststellen, dass das Stammelement als „Kunde“ bezeichnet wird und alle anderen Elemente wie „Kunden“ enthält, die als „Kinderelemente“ oder „Unterelemente“ angesehen werden.Es ist zu beachten, dass diese Kinderkomponenten die Fähigkeit haben, andere Kinderelemente zu überziehen, die als „Sub-Kind-Elemente“ bezeichnet werden, und als ihre eigenen Eltern fungieren.

Sie werden zum Beispiel beobachten, dass das Kundenelement einige „Attribute“ wie IDs, Namen und Rechnungen enthält, die noch mehr Details liefern. Jetzt lesen wir diese XML -Dateiinformationen mithilfe der verschiedenen unten angegebenen Codes.

Beispiel 1:
Wir können den Namen des Root -Tags aus der angegebenen XML -Datei in Python erhalten, indem wir die GetRoot -Funktion aus dem ElementTree -Modul verwenden.

XML importieren.ETREE.ElementTree als et
Datei_root = et.analysieren ('Kunde.xml ').getroot ()
Datei_Tag = Datei_Root.Schild
print (file_tag)

Wir haben den ModulelementTree aufgenommen, dem ein Alias ​​als ET zugewiesen wird. Dann haben wir ein Objekt als Datei_Root deklariert. In diesem Objekt haben wir eine Parse -Funktion, die den XML -Dateinamen nimmt. Gleichzeitig haben wir die GetRoot -Methode aufgerufen, um den Namen der Wurzel zu erhalten. Wir haben ein anderes Objekt als File_Tag erstellt, in dem wir das Tag mit dem Objekt File_root aufgerufen haben. Das Ergebnis von Datei_Tag wird auf dem Bildschirm gedruckt.

Sie können sehen, dass der Name des generierten Root -Tags Kunden wie in der XML -Datei angegeben ist.

Beispiel 2:
Wir können auch das Stamm der Attribute erhalten, die in der XML -Datei vorhanden waren. Mit diesem Beispiel können wir die Wurzel des Attributs erreichen.

XML importieren.ETREE.ElementTree als et
f_root = et.analysieren ('Kunde.xml ').getroot ()
f_attributes = f_root.Attraktivität
print (f_attributes)
tag = f_attributes.Get ('Tag')
print ('Tag:', Tag)

Da wir das ModulelementTree -Modul einfügt haben, haben wir ein Objekt als F_ROOT erstellt, in dem wir die XML -Datei in der Parse -Methode definiert haben. Wir haben auch die GetRoot -Methode in diesem Objekt definiert, um den Stammnamen zu erhalten. Anschließend haben wir ein Objekt als F_ATTRIBUTes für das Wurzel des Attributs erstellt und seinen Wert gedruckt. Um das bestimmte Attribut zu erhalten, haben wir ein Objekt als Tag definiert und das Attribut der Get -Methode darin zugewiesen. Das spezifische Attribut wird von der Druckfunktion gedruckt.

Die Ergebnisse des obigen Codes sind wie folgt:

Beispiel 3:
Wir können auf die Attribute der untergeordneten Knoten des Stammes zugreifen, indem wir den folgenden Code implementieren.

XML importieren.ETREE.ElementTree als et
root = et.analysieren ('Kunde.xml ').getroot ()
Für den Kunden in Root.Findall ('Kunde'):
Attribute = Kunde.Attraktivität
Druck (Attribute)
Typ = Attribute.get ('Typ')

Der erste zweistufige Code entspricht dem oben angegebenen Code. Dann haben wir eine für Schleife, die über jeden Kinderknoten "Kunde" rekapituliert wird. Nach dieser Iteration haben wir ein variables Attribut erstellt, das alle Knoten der Attribute erhält. Wir haben den Typ der Attribute abgerufen, indem wir 'Typ' innerhalb der Get -Methode zugewiesen haben.

Die Arten der Attribute in den untergeordneten Knoten werden wie folgt angezeigt:

Beispiel 4:
Das Beispiel soll auf den Knoten des Elements aus der XML -Datei zugreifen, ohne den Tag -Namen mit dem entsprechenden Knotenelement zu kennen.

XML importieren.ETREE.ElementTree als et
root = et.analysieren ('Kunde.xml ').getroot ()
Für den Kunden in Root.Findall ('Kunde'):
ID = Kunde.find ('id').Text
print ('id:', id)
Name = Kunde.find ('name').Text
print ('name:', name)
Bill = Kunde.finde ('bill').Text
print ('bill:', bill)

Beginnen Sie mit der for -Loop, wir haben die für die Loop über jeden Knoten in der XML -Datei iteriert. Dann erhalten wir die Element -ID, den Namen und die Bill, indem wir sie an die Find -Methode weitergeben und jedes Element mit seinem Wert drucken.

Die aus dem obigen Code erhaltenen Elementknoten sind wie folgt:

Beispiel 5:
Sehen wir uns das letzte Beispiel an, in dem wir auf den Namen des Root -Tags aus der Customer XML -Datei zugreifen.

XML importieren.ETREE.ElementTree als et
root = et.analysieren ('Kunde.xml ').getroot ()
Für den Kunden in Root.Findall ('Kunde'):
Für Artikel im Kunden:
i_name = items.Schild
i_value = kunde.Finden Sie (Artikel.Schild).Text
print (i_name, ':', i_value)

Von der für die Schleife zuerst haben wir über jeden der Knoten iteriert. Anschließend haben wir erneut die für Schleife verwendet, um alle Artikel des Kundenknotens zu erhalten. Die Elemente werden durch Aufrufen des Tag -Objekts zugegriffen und an die Find -Methode weitergegeben.

Das gesamte Element -Tag des Kunden -Tags wird wie folgt angezeigt:

Abschluss

Ein essentielles Python -Paket namens ElementTree ermöglicht es, XML -Dokumente zu durchqueren und zu lesen. Das XML -Dokument wird mit ElementTree in eine überschaubare Baumstruktur unterteilt. Drucken Sie es im Zweifelsfall mit dem praktischen Druckbefehlsdruck aus (ET.toString (root, coding = "utf8").decodode ('utf8')), um das gesamte XML -Dokument gleichzeitig zu untersuchen. Beim Ändern, Hinzufügen oder Entfernen von einem XML ist die Überprüfung hilfreich. Die Verwendung von ElementTree und XMLS hat mehrere wichtige Überlegungen. Tags definieren, welche Werte in der Baumstruktur umrissen werden sollen, und helfen beim Aufbau. Die Fähigkeit zum Lesen und Schreiben in einen XML kann durch clevere Strukturierung erleichtert werden. Die Eltern-Kind-Beziehung muss immer in den Eröffnungs- und Schließklassen auf Tags angezeigt werden. Bei der Validierung von Tags oder zur Erlaubnis von Booleschen Bezeichnungen geben Attribute weitere Anweisungen an.