Musterlösung

% Einlesen der XML-Datei
XMLdoc = 'XMLAufgabe.xml';
docNode = xmlread(XMLdoc);

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

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

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

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

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

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.