![]() |
XML datei in DBGrid auslesen
Grüße im neuen Jahr an alle DP-ler!
Ich habe unter .NET eine Anwendung geschrieben, die XML Dateien erzeugt und möchte sie mit WIN32 auslesen. Dazu habe ich erstmal ein Miniprogramm geschrieben, das bei Aufruf eine vorhandene XML-Datei in einem DBGrid anzeigen soll. Mehr nicht. Dabei bekomme ich immer eine Fehlermeldung: XML Parse Error; Reason: The system cannot locate the resource specified. Hier der Quelltext des OnCreate-Events:
Delphi-Quellcode:
Ich habe übrigens in dem Programm eine Form mit einem DBGrid1, dem ich im Objektinspektor als DataSource die DataSource1 zugewiesen habe, die DataSource1 hat als DataSet den ClientDataSet1, der ClientDataSet1 hat als ProviderName den XMLTransformProvider und der XMLTransformProvider als XMLDataFile den "Auftrag3.xml". Dazu gibt es ein XMLTransform1, das als TransformationFile die gemappte "FromXML.xtr" besitzt.
procedure TForm1.FormCreate(Sender: TObject);
begin XMLTransform1.SourceXMLFile := 'Auftrag3.xml'; XMLTransform1.TransformationFile := 'ToDb.xtr'; // Bis hierhin läuft alles normal, dann kommt die Fehlermeldung // XML Parse Error; Reason: The system cannot locate the resource specified. ClientDataSet1.XMLData := XMLTransform1.Data; ClientDataSet1.Active := true; end; Jetzt die Fragen: Liegt es daran, dass die Datei in .NET geschrieben wurde? -IMHO "Nein", aber ich lasse mich gerne eines besseren belehren. Welche Ressource kann nicht gefunden werden? Und wichtiger: Wie bekomme ich das Problem in den Griff? Vielen Dank für Eure Mühen, es grüßt der eimo |
Re: XML datei in DBGrid auslesen
Gib mal die Dateien mit kompletter Pfadangabe an. Falls das nicht hilft vertausche die Reihenfolge.
|
Re: XML datei in DBGrid auslesen
Hallo eimo,
vielleicht wird die Datei wirklich nicht gefunden:
Delphi-Quellcode:
Neujahrsgrüße vom marabu
procedure TForm1.FormCreate(Sender: TObject);
var dir, fnXML, dnXSLT: String; begin GetDir(0, dir); dir := IncludeTrailingPathDelimiter(dir); fnXML := 'Auftrag3.xml'; fnXSLT := 'ToDb.xtr'; if not FileExists(dir + fnXML) then ShowMessage(Format('Datei "%s%s" nicht gefunden', [dir, fnXML])) else if not FileExists(dir + fnXSLT) then ShowMessage(Format('Datei "%s%s" nicht gefunden', [dir, fnXSLT])) else begin XMLTransform1.SourceXMLFile := fnXML; XMLTransform1.TransformationFile := fnXSLT; ClientDataSet1.XMLData := XMLTransform1.Data; ClientDataSet1.Active := True; end; end; |
Re: XML datei in DBGrid auslesen
Glaube nicht, dass es daran liegt könnte, denn die liegen im gleichen Ordner.
Hab aber in der Zwischenzeit das XML-File neu gemappt und den neuen Mapper unter einem anderen Namen abgespeichert, alle Bezüge geändert und jetzt klappt's. Weiß nicht, was beim ersten mappen anders gelaufen ist. ![]() Danke. |
Re: XML datei in DBGrid auslesen
Seltsam,
mein DBGrid nimmt liest das XML Dokument ein, stellt aber nur die erste Zeile dar. Im Browser sieht man alle Auftragspositionen, im Grid nur die erste.
XML-Code:
Dachte zuerst, es liegt daran, dass ich die Positionen an die Auftragsnummer gehängt habe. Schließlich sind Kundennummer und Auftragsnummer ja Kopfdaten, und die wollte ich pro Auftrag nur einmal eingeben, aber jedesmal anzeigen lassen. Meine Überlegung dazu war, dass der Grid die nächste Zeile nicht einliest, da die KNr und ANr nicht nochmal erwähnt sind.
<Auftrag>
<KNr></KNr> <ANr></ANr> <content> <APosNr></APosNr> <AufgNr></AufgNr> <Vorgänger /> <Dauer></Dauer> <FAZ></FAZ> <SEZ></SEZ> </content> </Auftrag> Habe darauf die KNr und ANr jedesmal mit angegeben und so die Struktur umgeändert in
XML-Code:
aber der Fehler bleibt der gleiche, der Grid stellt nur die erste Datenzeile dar.
<Auftrag>
<KNr></KNr> <ANr></ANr> <APosNr></APosNr> <AufgNr></AufgNr> <Vorgänger /> <Dauer></Dauer> <FAZ></FAZ> <SEZ></SEZ> </Auftrag> Hat jemand 'ne Idee, woran das liegen könnte? MfG vom eimo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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