OpenXML XDOM 4.1
Laden & Auslesen
Nun wollen wir die XML-Datei laden und die Werte auslesen.
Dazu kommt ein TXmlToDomParser auf die Form, dessen DOMImpl wir wieder auf unseren DomImplementation1 verlinken.
Im Memo steht der XML-Code von oben.
Und ein zweiter Button in dessen OnClick wir schreiben:
procedure TForm1.Button2Click(Sender: TObject);
var
FInputSource: TXMLInputSource;
FDoc: TDomDocument;
begin
FInputSource := TXMLInputSource.Create(Memo1.Text, '', '', 1024, False, 0, 0, 0, 0, 1);
FDoc := XmlToDomParser1.Parse(FInputSource);
FInputSource.Free;
end;
Man kann natürlich auch aus einer Datei laden:
FDoc := XMLToDomParser1.ParseFile('test.xml', False);
Nun wollen wir die Werte auslesen.
Für den Namen eines Tags:
ShowMessage(FDoc.FindFirstChildElement.NodeName);
Gibt 'RootNode' zurück.
Für den Wert eines Tags:
ShowMessage(FDoc.GetElementsByTagName('Node1').Item(0).ChildNodes.Item(0).NodeValue);
Gibt 'Text1' zurück.
Für das Attribut eines Tags:
ShowMessage(FDoc.FindFirstChildElement.Attributes.Item(0).NodeValue);
Gibt 'Wert1' zurück.
Oder:
ShowMessage(FDoc.GetElementsByTagName('Node2').Item(0).Attributes.GetNamedItem('Attr3').NodeValue);
Gibt 'Wert3' zurück.
Und für einen Kommentar:
ShowMessage(FDoc.FindFirstChildElement.ChildNodes.Item(3).NodeValue);
Gibt 'Kommentar' zurück.
Am Ende sollte man immer FDoc.Free; nicht vergessen. ;P