Zum Inhalt springen

Was ist eine XML-Datei?

  • Daten

XML steht für Extensible Markup Language und dient heutzutage als textbasiertes Datenformat zum Austausch von strukturierten Daten. Es war ursprünglich dafür entwickelt um HTML zu ersetzen, da es datentechnisch an seine Grenzen gestoßen ist.

Wie sind XML-Dateien aufgebaut?

Die sogenannten Markup Languages, wie HTML oder XML, nutzen Markierungen, um textuelle Informationen zu strukturieren. Bei HTML gibt es ein fest definiertes Set an Markierungen, welche in spitzen Klammern (<>) definiert sind. Dazu gehören beispielsweise Überschriften (<h1>, <h2>, <h3>, …) oder Paragraphen (<p>), welche genutzt werden, um die Struktur einer Website aufzubauen:

<!DOCTYPE html>
<html>
<head>
<title>Title Text</title>
</head>
<body>

<h1>Main Header</h1>
<p>The first paragraph</p>

</body>
</html>

Das ist beispielsweise der Aufbau einer sehr einfachen Website. Durch die Markups wird die Struktur der Seite definiert, welche aktuell lediglich aus einer Überschrift und einem kurzen Paragraph besteht.

XML nutzt dieselbe Struktur mit dem Unterschied, dass die Menge an Markups nicht begrenzt ist und deren Benamungen frei wählbar sind. Dadurch lassen sich viele Arten von Datenstrukturen relativ einfach nachbilden.

Die einzigen Regeln, welche von Extensible Markup Language vorgegeben werden, sind, dass Markups immer mit einem öffnenden Tag <markup_1> starten und mit einem schließenden Tag </markup_1> enden müssen. Die einzige Ausnahme ist ein Tag mit dieser Form <markup_1/>.

Um verschachtelte Informationen darzustellen, können auch mehrere neue Tags innerhalb eines geöffneten Tags definiert werden. Hierzu ein Beispiel:

# Car XML File
<car>
    <brand>Audi</brand>
    <model>A6</model>
    <construction_year>1997</construction_year>
</car>

Eine zusätzliche Funktionalität sind die sogenannten Parameter. Diese können für jedes Markup definiert werden und müssen immer einen Namen und einen Wert enthalten. Der Wert muss in Anführungszeichen definiert werden, auch wenn es sich um eine Zahl handelt.

In unserem Beispiel ist die Einführung von Parametern sinnvoll, wenn wir mehrere Autos einer Sammlung beschreiben wollen:

# Car XML File
<car id="1">
    <brand>Audi</brand>
    <model>A6</model>
    <construction_year>1997</construction_year>
</car>
<car id="2">
    <brand>Mercedes-Benz</brand>
    <model>A-class</model>
    <construction_year>2015</construction_year>
</car>

Vor- und Nachteile der Extensible Markup Language

Folgende Vorteile bietet die Nutzung von Extensible Markup Language Dateien:

  • Weite Verbreitung und dadurch hohe Kompatibilität mit bereits bestehenden Anwendungen
  • Hohe Sicherheit der Dateien
  • Einfache Wiederherstellung von Informationen aufgrund der Lesbarkeit der Textdateien
  • Leichte Interpretation von Mensch und Maschine
  • Einfache Struktur und Aufbau, sodass es für viele Anwender schnell verständlich ist
  • Erweiterbarkeit in Form von „Dialekten“

Der einzige wirkliche Nachteil, der dieser langen Liste an positiven Punkten gegenüberstehen kommt vom textuellen Format, welches die Extensible Markup Language nutzt. Textuelle Informationen können nämlich nur mit vergleichsweise mehr Speicherplatz abgelegt werden und können dadurch in der Verarbeitung zu geringerer Performance führen. Binäre Dateiformate, wie beispielsweise BSON, benötigen für dieselben Informationen deutlich weniger Speicherplatz, sind aber dafür nicht vom Menschen lesbar, da die Informationen in Nullen und Einsen abgespeichert werden.

Welche Anwendungen nutzen die Extensible Markup Language?

Aufgrund der textbasierten Speicherung der Extensible Markup Language ist das Format relativ einfach lesbar und verständlich. Deshalb wird es für verschiedenste Anwendungen eingesetzt. Zu den häufigsten Use Cases zählt der Datenaustausch, also der Import und Export von Daten in Anwendungen.

Darüber hinaus sind nur wenige allgemeine Anwendungen der Extensible Markup Language vorhanden, da die meisten Use Cases eine Abwandlung von XML erstellt haben, die auf ihre Anwendung speziell zugeschnitten ist. Es gibt beispielsweise die Mathematical Markup Language (MathML), die ein Dialekt von XML ist und dazu genutzt wird, mathematische Gleichungen und Terme korrekt darzustellen.

Wie können XML-Dateien in Python bearbeitet werden?

Es gibt verschiedene Möglichkeiten und Module, um XML Dateien in Python zu öffnen. Wir werden versuchen einen String bestehend aus unserem vorherigen Beispiel zu nutzen. Wir können entweder versuchen die ursprüngliche Struktur zu erhalten:

# Example
string = """
<car id="1"> 
    <brand>Audi</brand> 
    <model>A6</model> 
    <construction_year>1997</construction_year> 
</car> 
"""

# Import Modules
import xml.etree.ElementTree as ET
from xml.etree.ElementTree import fromstring
tree = ET.ElementTree(ET.fromstring(string))
root = tree.getroot()

# Get elements 
print(root[0])

Out: 
<Element 'brand' at 0x00000229449A54F8>

Auf der anderen Seite können wir auch versuchen die Struktur der Extensible Markup Language in ein Python Dictionary umzuwandeln. Das ist für viele Entwickler deutlich einfacher, die viel mit Python arbeiten:

# Import Module
import xmltodict

print(xmltodict.parse(xml_string))

Out: 
{'car': {'@id': '1',
  'brand': 'Audi',
  'model': 'A6',
  'construction_year': '1997'}}

Das solltest Du mitnehmen

  • XML steht für Extensible Markup Language und dient heutzutage als textbasiertes Datenformat zum Austausch von strukturierten Daten.
  • Aufgrund der textbasierten Speicherung der Extensible Markup Language ist das Format relativ einfach lesbar und verständlich.
  • Unter anderem bietet das Format den Vorteil, dass es durch die Dialekte anpassbar ist für verschiedene Use Cases.

Andere Beiträge zum Thema XML

close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner