Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-XML-Parser-Tutorial:Beispiel für XML-Datei lesen (Minidom, ElementTree)

Was ist XML?

XML steht für eXtensible Markup Language. Es wurde entwickelt, um kleine bis mittlere Datenmengen zu speichern und zu transportieren, und wird häufig zum Teilen strukturierter Informationen verwendet.

Mit Python können Sie XML-Dokumente analysieren und ändern. Um ein XML-Dokument zu analysieren, müssen Sie das gesamte XML-Dokument im Speicher haben. In diesem Tutorial werden wir sehen, wie wir die XML-Minidom-Klasse in Python verwenden können, um XML-Dateien zu laden und zu parsen.

In diesem Tutorial werden wir lernen-

Wie man XML mit Minidom parst

Wir haben eine Beispiel-XML-Datei erstellt, die wir analysieren werden.

Schritt 1) In der Datei sehen wir Vorname, Nachname, Wohnort und das Fachgebiet (SQL, Python, Testing und Business)


Schritt 2) Sobald wir das Dokument geparst haben, drucken wir den „Knotennamen“ aus des Stammverzeichnisses des Dokuments und dem „firstchild tagname“ . Tagname und nodename sind die Standardeigenschaften der XML-Datei.

Hinweis :

Knotenname und untergeordneter Tagname sind die Standardnamen oder Eigenschaften eines XML-Doms. Falls Sie mit dieser Art von 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 die Skills wie SQL, Python, Testing und Business ausgedruckt.

So erstellen Sie einen XML-Knoten

Wir können ein neues Attribut erstellen, indem wir die Funktion „createElement“ verwenden 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.

  1. Sie müssen codieren, um das neue Attribut (BigData) zum vorhandenen XML-Tag hinzuzufügen
  2. Dann müssen Sie das XML-Tag mit neuen Attributen ausdrucken, die an das vorhandene XML-Tag angehängt sind

XML-Parser-Beispiel

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")
    
# create 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"))

    # create 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();

Wie man XML mit ElementTree parst

ElementTree ist eine API zum Bearbeiten von XML. ElementTree ist der einfache Weg, 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>

Lesen von XML mit ElementTree:

wir müssen zuerst das Modul xml.etree.ElementTree importieren.

import xml.etree.ElementTree as ET

Lassen Sie uns nun das Wurzelelement abrufen:

root = tree.getroot()


Im Folgenden finden Sie den vollständigen Code zum Lesen 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)

Ausgabe:

Expertise Data:
SQL
Python

Zusammenfassung:

Mit Python können Sie das gesamte XML-Dokument auf einmal parsen und nicht nur jeweils eine Zeile. Um ein XML-Dokument zu analysieren, müssen Sie das gesamte Dokument im Speicher haben.


Python

  1. Python-Datei-I/O
  2. Java BufferedReader:Lesen von Dateien in Java mit Beispiel
  3. Python String strip() Funktion mit BEISPIEL
  4. Länge der Python-Zeichenfolge | len() Methode Beispiel
  5. Yield in Python Tutorial:Generator &Yield vs. Return Beispiel
  6. Python-Zähler in Sammlungen mit Beispiel
  7. Enumerate() Funktion in Python:Loop, Tuple, String (Beispiel)
  8. Python-Prüfung, ob Datei vorhanden ist | So prüfen Sie, ob ein Verzeichnis in Python existiert
  9. Python JSON:Codieren (Dumps), Decodieren (Laden) und JSON-Datei lesen
  10. Python List index() mit Beispiel