procedure TForm1.LiesXML;
var
xmlDoc: IXMLDocument;
HashDatei, HashBerechnet:
string;
Stream: TStream;
begin
//XMLDocument erzeugen und xml-Datei laden
xmlDoc := newXMLDocument;
xmlDoc.LoadFromFile(PATH + Dateiname);
xmlDoc.Active := true;
TextEdt.Text := xmlDoc.DocumentElement.ChildNodes['
messdaten'].ChildNodes['
messwerte'].Attributes['
text'];
Messwert1Edt.Text := xmlDoc.DocumentElement.ChildNodes['
messdaten'].ChildNodes['
messwerte'].Attributes['
messwert1'];
Messwert2Edt.Text := xmlDoc.DocumentElement.ChildNodes['
messdaten'].ChildNodes['
messwerte'].Attributes['
messwert2'];
HashDatei := xmlDoc.DocumentElement.ChildNodes['
hashdaten'].ChildNodes['
hash'].Attributes['
wert'];
xmlDoc.DocumentElement.ChildNodes.Remove(xmlDoc.DocumentElement.ChildNodes.FindNode('
hashdaten'));
Stream := TMemoryStream.Create;
xmlDoc.SaveToStream(Stream);
Stream.Position := 0;
HashBerechnet := getMd5StreamToStr(Stream);
if HashDatei = HashBerechnet
then
begin
StatusBar1.Panels[1].Text := '
Hash ok!';
end
else
begin
StatusBar1.Panels[1].Text := '
Hash nicht ok!';
end;
end;
procedure TForm1.SchreibeXML;
var
xmlDoc : IXMLDocument;
iNode: IXMLNode;
Hashwert:
string;
Stream: TStream;
begin
ErstelleXML;
xmlDoc := newXMLDocument;
xmlDoc.LoadFromFile(PATH + Dateiname);
xmlDoc.Active := true;
//Neuen Knoten anlegen - Messdaten
xmlDoc.DocumentElement.AddChild('
messdaten');
//Attribute zuweisen - Messwerte
iNode := XMLDoc.DocumentElement.ChildNodes['
messdaten'].AddChild('
messwerte');
iNode.Attributes['
text'] := TextEdt.Text;
iNode.Attributes['
messwert1'] := Messwert1Edt.Text;
iNode.Attributes['
messwert2'] := Messwert2Edt.Text;
iNode.Text := '
';
Stream := TMemoryStream.Create;
xmlDoc.SaveToStream(Stream);
Stream.Position := 0;
Hashwert := getMd5StreamToStr(Stream);
//Neuen Knoten anlegen - Hashdaten
xmlDoc.DocumentElement.AddChild('
hashdaten');
//Attribute zuweisen - Hashwert
iNode := XMLDoc.DocumentElement.ChildNodes['
hashdaten'].AddChild('
hash');
iNode.Attributes['
wert'] := Hashwert;
iNode.Text := '
';
//Speichern
xmlDoc.SaveToFile(PATH + Dateiname);
end;