whitef - Fr 10.06.11 16:55
Titel: XML Datei erstellen - Fehler: No active document
hi,
habe folgendes problem:
Ich möchte eine XML Datei erstellen. Ich habe feste Werte die ich speichern möchte und dann ein memo feld das an die vorläufige XML hinzugefügt werden soll.
ich habe auf einer form die TXMLDocument Komponente und nachfolgenden Code. Leider erscheint die unten stehende Exception.
Wenn ich allerdings die kommentierte Zeile im Code entferne, klappts wunderbar, allerdings ohne den zusatz aus der memo!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm2.Button3Click(Sender: TObject); var ChildNode: IXMLNode; begin
XMLDocument1.Active := True; XMLDocument1.Encoding := 'ISO-8859-1';
XMLDocument1.AddChild('BLZ_5085xxxx');
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('BLZ'); ChildNode.Text := '5085xxxx';
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('Bankname'); ChildNode.Text := 'Example Voba';
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('PLZ'); ChildNode.Text := 'plzXX';
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('Ort'); ChildNode.Text := 'buxdehude';
XMLDocument1.XML.AddStrings (Memo1.Lines); XMLDocument1.SaveToFile(edSaveXML.Text); end; |
Beim Ausführen bekomme ich folgende Fehlermeldung:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| --------------------------- Debugger Exception Notification --------------------------- Project db2xml.exe raised exception class EXMLDocError with message 'No active document'. --------------------------- Break Continue Help --------------------------- |
whitef - So 12.06.11 11:13
so... bin selber auf die lösung gekommen :D
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TForm2.Button3Click(Sender: TObject); var ChildNode: IXMLNode; begin
XMLDocument1.Active := True; XMLDocument1.Encoding := 'ISO-8859-1';
XMLDocument1.AddChild('BLZ_5085xxxx');
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('BLZ'); ChildNode.Text := '5085xxxx';
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('Bankname'); ChildNode.Text := 'Example Voba';
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('PLZ'); ChildNode.Text := 'plzXX';
ChildNode := XMLDocument1.ChildNodes['BLZ_5085xxxx'].AddChild('Ort'); ChildNode.Text := 'buxdehude';
XMLDocument1.XML.AddStrings (Memo1.Lines); XMLDocument1.Active := True; XMLDocument1.SaveToFile(edSaveXML.Text); end; |
obwohl ich am anfang bereits das XMLDocument1 auf true gesetzt hatte, muss es später vor dem speichern auch wieder rein.
"No Active Document" - Fehler ist somit beseitigt^^