![]() |
TXMLDocument: Problem bei LoadFromFile
Hallo,
ich möchte ne Klasse mit SaveToFile und LoadFromFile Methoden schreiben. Die SaveToFile habe ich:
Delphi-Quellcode:
Damit bekomm ich zB folgendes Ergebnis:
procedure SaveToFile(AFile: string);
var i : integer; begin with TXMLDocument.Create(Application) do try Active:=True; Options:=[doNodeAutoIndent]; with AddChild('List') do begin AddChild('Datum').Text:=DateTimeToStr(Now); for i :=0 to Pred(Self.Count)do begin with AddChild('Item') do begin AddChild('User').Text:=Items[i].FUser; AddChild('Password').Text:=Items[i].FPassword; end; end; end; SaveToFile(AFile); finally //TODO:XMLDokument freigeben ? FEHLER! end; end;
XML-Code:
Keine Kopfzeile wie ich Sie aus andern XML-Files kenne :gruebel:
<List>
<Datum>18.08.2008 12:52:37</Datum> <Item> <User>Benutzer</User> <Password>Password</Password> </Item> <Item> <User>Benutzer2</User> <Password>Password2</Password> </Item> </List> Beim Laden gibts jetz aber ne Menge Probleme. Bzw erstmal eins:
Delphi-Quellcode:
Also was mache ich da beim Einlesen falsch?
procedure LoadFromFile(AFile: string);
var i : integer; lxml : TXMLDocument; cn : IXMLNode; begin Self.Clear; lxml := TXMLDocument.Create(Application); with lxml do try Options:=Options + [doNodeAutoIndent]; LoadFromFile(AFile); cn:=ChildNodes[0];//Was genau muss ich hier laden? Habs mit Node und ChildNodes[0] probiert for i :=0 to Pred(cn.ChildNodes.Count)do //Es wird mir angezeigt das 1 Item existiert, sollten aber 2 sein? begin if(cn.ChildNodes.Nodes[i].NodeName = 'AutoItem')then //Zugriffsverletzung bei Adresse 0 begin with TMyListItem.Create(self) do begin FUser:= cn.ChildNodes[i].ChildValues['User']; FPassword:= cn.ChildNodes[i].ChildValues['Password']; end; end; end; finally //TODO: XMLDokument freigeben? FEHLER! end; end; Edit: Wenn ich anstatt cn:=ChildNodes[0]; nur cn:=DocumentElement; schreibe dann gehts. Aber: Wenn ich im Debugmodus mitm Mauszeiger über NodeName(=> cn.ChildNodes.Nodes[i].NodeName) gehe wird mir eine Zugriffsverletzung angezeigt. trotzdem scheint er die NodeNamen einlesen zu konnen. sehr komisch das Ganze :gruebel: |
Re: TXMLDocument: Problem bei LoadFromFile
Nimm mal statt TXMLDocument -> IXMLDocument.
|
Re: TXMLDocument: Problem bei LoadFromFile
Naja es geht ja mittlerweile, auch mit TXMLDocument. Aber das im Debugmodus ist mir doch ein Rätsel.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz