Musterlösung: XML parsen

% Einlesen der XML-Datei
filename = 'XMLAufgabe.xml';
domNode = xmlread(filename);

% Hinzufügen eines Knotens
findNode = domNode.getElementsByTagName('Studentenliste');
foundNode = findNode.item(0);
nodeChild = domNode.createElement('Student');
nodeChild.setAttribute('MatrikelNr', '100002')
foundNode.appendChild(nodeChild);

findNode = domNode.getElementsByTagName('Student');
foundNode = findNode.item(1);
nodeChild = domNode.createElement('Name');
nodeChild.setTextContent('Lisa Mustermann');
foundNode.appendChild(nodeChild);

findNode = domNode.getElementsByTagName('Student');
foundNode = findNode.item(1);
nodeChild = domNode.createElement('Alter');
nodeChild.setTextContent('20');
foundNode.appendChild(nodeChild);

% Speichern der veränderten Datei
xmlwrite('XMLAufgabe2.xml', domNode);

% Erneutes Einlesen, Speichern ohne Änderung
domNode2 = xmlread('XMLAufgabe2.xml');
xmlwrite('XMLAufgabe3.xml', domNode2);

Es fällt auf, dass bei jedem Aufruf von xmlwrite Zeilenumbrüche hinzugefügt werden. Dieses Problem liegt am Parser. Das Hinzufügen von Zeilenumbrüchen kann nicht direkt vermieden werden, sondern nur durch eine weitere Funktion, die die Änderung wieder rückgängig macht, verhindert werden. Sollten Sie sich, z.B. im Rahmen der Teamarbeit, zur Nutzung der in diesem Kapitel behandelten Funktionen entscheiden, kann es hilfreich sein, eine Funktion, die die Zeilenumbrüche entfernt, zu implementieren. Weitere Informationen hierzu finden Sie im Tutorial zur Teamarbeit.