function A = parse(filename, root_tag)
% control ruft die einzelnen Funktionen auf und steuert so den Parser.
% control ist spezifisch auf das Messdaten.xml angepasst, die anderen
% Funktionen sind jedoch für jedes XML-Dokument mit einem Element pro Zeile
% einsetzbar.
% Es muessen der Dateiname der zu parsenden Datei und der Anfangstag des
% Wurzelelements uebergeben werden.

% Vektoren für die eingelesenen Daten erstellen
x = []; 
y = []; 
z = [];

typ = 0;                        % lokale Varable definieren

open_file(filename);            % Dokument oeffnen
search_root(root_tag);          % root_tag suchen

% Daten mit einer Schleife auslesen
% Die Daten werden zunaechst in Vektoren eingelesen und anschliessend in eine
% Matrixform ueberfuehrt
while typ ~= -1                 % Schleife abbrechen wenn Ende der Datei erreicht ist
    typ = get_next_line;
    switch typ
        case{'<x-Koordinate>'}
            x(length(x)+1) = str2num(parse_next_line);
        case{'<y-Koordinate>'}
            y(length(y)+1) = str2num(parse_next_line);
        case{'<Messwert>'}
            z(length(z)+1) = str2num(parse_next_line);
    end
end

disp('Parsen abgeschlossen.');
close_file;                 % Datei schliessen

A = [x; y; z];