Saturday, March 19, 2016

XML für Anfänger

XML für Anfänger


XML ist eine sehr beliebte Art Daten darzustellen. Es steht für Extensible Markup Language auf Deutsch für erweiterbare Auszeichnungssprache. In diesem Tutorial geht es darum wie man Xml braucht und wie die Konvention dafür aussieht.

Wo wird es gebraucht?

Xml hat sich in den Jahren vor allem im Web bereich durchgesetzt da es in seiner Syntax auch sehr an Html errinert. Wenn man jetzt zum Beispiel einen Blog schreibt, kann man die Daten relativ einfach also in dem Fall die Posts in XML speichern und so damit auch sehr Leserlich strukturieren mit einem Datum und dem Post Inhalt. 

Aufbau

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<personen>
    <person>
        <name>Müller</name>
        <vorname>Hans</vorname>
        <alter>30</alter>
        <Herkunft>Deutschland</Herkunft>
    </person>
</personen>¨

Die erste Zeile ist sehr wichtig, sie teilt dem Pasrser mit dass es sich hier um ein XML Dokument handelt. Oftmals führt ein Fehler in dieser Zeile dazu, das dass Xml Dokument vom Parser nicht verstanden wird und ein Fehler ausgegeben wird.

Dannach kommt der Root Tag, in diesem Fall die Personen, in jedem Xml Dokument gibt es genau einen Root Tag und nicht mehr. So ist die Konvention. Man versteht dadurch schnell was für Daten sich in diesem Dokument befinden. In unserem Fall sind dies Personen.

Und schlussendlich kommen wir noch zu den richtigen Daten. Zu den Personen. Diese sollten im Idealfall genau gleich aufgebaut werden. Wir sehen, jede Person hat einen Name, Vornamen und ein Alter. Dies wird auch so gespeichert.

Man sieht schon die grosse Ähnlichkeit von XML zu HTML, dass heisst auch Menschen die keine Programmierer sind, sonder sich viel mehr mit der strukturierung von einer Website befassen können XML verstehen.

Parsen

Beim Parsen gibt es zwei Möglichkeiten. Also zwei Vorgehensweisen. Das eine ist SAX und das andere DOM. 

Sax

Sax ist die schnellste Variante ein XML Dokument zu parsen, jedoch liegen die Daten, also der Baum nach dem Einlesen nicht mehr im Arbeitsspeicher. Sax betrachted nicht das ganze Dokument sondern nur die benötigten Teile und liefert uns nur die benötigten Daten.

Dom

Dom ist wesentlich langsamer als Sax, jedoch leigt der Tree, also unser Daten Baum dan immer noch im Abreitsspeicher und wir können auf jegliche Knoten zugreifen. Dom betrachted ein XML Dokument immer als ganzes. Dies lohnt sich oft sehr, jedoch muss man immer auf die Grösse unsere XML Files schauen. Da beim Parsen jedesmall der ganze Datenbaum eingelesen wird.

Beispiel

Jetzt noch einmal zu unserem Beispiel von vorhin. Wir schreiben einen Blog und möchten unsere Posts in einem XML File speichern. Unser Dokument würde dann folgender massen aussehen:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Posts>
    <Post>
        <Titel>Erster Post</Titel>
        <Daten> Hall und wilkommen zum ersten Post...</Daten>
        <Author>Python</Author>
        <Datum>1.01.2016</Datum>
    </Post>
    <Post>
        <Titel>Zweiter Post</Titel>
        <Daten> Hall und wilkommen zum zweiten Post...</Daten>
        <Author>Python</Author>
        <Datum>1.04.2016</Datum>
    </Post>
</Posts>


No comments:

Post a Comment