![]() |
Problem mit TXMLDocument (Delphi7)
Hi,
ich wollte heute mal mit dem TXMLDocument von Delphi 7 arbeiten. Ich hab mir folgenden Code geschrieben: [FXMLFile ist der Dateiname vom Typ String und ja, die Datei existiert, und ja mit LoadFromFile habe ich es auch schon probiert :-\]
Delphi-Quellcode:
Jedoch führt der Zugriff auf DocumentElement zu einem Fehler:
var
XMLDocument : TXMLDocument; begin XMLDocument := TXMLDocument.Create(FXMLFile); try XMLDocument.DOMVendor := DOMVendors.Find(DEFAULTDOMVENDOR); XMLDocument.FileName := FXMLFile; XMLDocument.Active := True; if XMLDocument.DocumentElement.NodeName = 'acitsettings' then begin // einträge auslesen end; finally XMLDocument.Free; end;
Code:
Was habe ich falsch gemacht? Wie kann ich das Problem lösen?
---------------------------
Benachrichtigung über Debugger-Exception --------------------------- Im Projekt UT2003ACIT.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- mfG mirage228 |
Re: Problem mit TXMLDocument (Delphi7)
Sorry fürs pushen ( :duck: ), aber ich würde das Projekt gerne schnellstmöglich noch zu Ende machen.
Bitte, jemand muss doch wissen, wieso das bei mir nicht klappt... :( mfG mirage228 |
Re: Problem mit TXMLDocument (Delphi7)
Hi,
schonmal mit Hilfe von Breakpoints geguckt, wo der Fehler liegt? Chris |
Re: Problem mit TXMLDocument (Delphi7)
Hi Chris,
der Zugriff auf "DocumentElement" bringt im Evaluator die obige AccessViolation (die im Programm dann ausgelöst wird) und danach einen EAbstractError. "DOMDocument" ist seltsamerweise auch nil, was eigentlich nicht sein dürfte. Active ist auf True und FileName ist auch korrekt gesetzt... Alles sehr seltsam... :?: mfG mirage228 |
Re: Problem mit TXMLDocument (Delphi7)
Hi,
Code:
Ersetze mal das TXMLDocument durch ein
var
XMLDocument : TXMLDocument; begin XMLDocument := TXMLDocument.Create(FXMLFile); try XMLDocument.DOMVendor := DOMVendors.Find(DEFAULTDOMVENDOR); XMLDocument.FileName := FXMLFile; XMLDocument.Active := True; if XMLDocument.DocumentElement.NodeName = 'acitsettings' then begin // einträge auslesen end; finally XMLDocument.Free; end;
Code:
das ist so viel ich weiß ein Fehler in der Implementierung der TXMLDocument Klasse.
IXMLDocument
Gruß, Kastor |
Re: Problem mit TXMLDocument (Delphi7)
Danke, danke, danke, danke, danke! :love:
Du bist mein Retter, jetzt klappt es ^^ :bouncing4: :bounce1: Jetzt kann ich endlich weiter :coder: mfG mirage228 P.S.: Ich frage mich, wann Borland sich mal dazu herablässt das zu patchen :roll: |
Re: Problem mit TXMLDocument (Delphi7)
Hallo,
du versuchst den Constructor mit dem Filenamen auszuführen! das führt natürlich zu einer Null Pointer Exception XMLDocument := TXMLDocument.Create(FXMLFile); um eine Instanz eines Objektes zu erzeugen musst du als Parameter den Owner mitgeben, meistens wird es wohl ein Formular sein, also Aufruf mit Self Variable oder Formularname XMLDocument := TXMLDocument.Create(self); oder z.B XMLDocument := TXMLDocument.Create(Form1); |
Re: Problem mit TXMLDocument (Delphi7)
Zitat:
so geht es natürlich. Aber wieso wird dann auch ein Dateiname im Konstruktor angeboten? Hm, naja mit IXMLDocument läuft es auf jeden fall. ;) mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 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