AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi TXMLDocument: Problem bei LoadFromFile
Thema durchsuchen
Ansicht
Themen-Optionen

TXMLDocument: Problem bei LoadFromFile

Ein Thema von Angel4585 · begonnen am 18. Aug 2008 · letzter Beitrag vom 18. Aug 2008
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

TXMLDocument: Problem bei LoadFromFile

  Alt 18. Aug 2008, 13:17
Hallo,

ich möchte ne Klasse mit SaveToFile und LoadFromFile Methoden schreiben.

Die SaveToFile habe ich:

Delphi-Quellcode:
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;
Damit bekomm ich zB folgendes Ergebnis:
XML-Code:
<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>
Keine Kopfzeile wie ich Sie aus andern XML-Files kenne

Beim Laden gibts jetz aber ne Menge Probleme. Bzw erstmal eins:

Delphi-Quellcode:
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;
Also was mache ich da beim Einlesen falsch?

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
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#2

Re: TXMLDocument: Problem bei LoadFromFile

  Alt 18. Aug 2008, 15:42
Nimm mal statt TXMLDocument -> IXMLDocument.
Matthias
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TXMLDocument: Problem bei LoadFromFile

  Alt 18. Aug 2008, 15:51
Naja es geht ja mittlerweile, auch mit TXMLDocument. Aber das im Debugmodus ist mir doch ein Rätsel.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz