![]() |
Nicht-Normalisierte Abfrage nach XML exportieren
Hallo liebes Forum !
Ich möchte ein SQL-Abfrageergebnis nach XML exportieren. Das Problem ist, dass das Ergebnis im Prinzip eine Baumstruktur hat, ungefähr so: Kunde Positionsnummer Menge Preis ----- --------------- ----- ----- Boris 1 3 2,50 Boris 2 2 12,50 Boris 3 1 1,50 Das XML soll so aussehen: <Bestellung> <Kunde>Boris</Kunde> <Bestellposition> <Positionsnummer>1</Positionsnummer> <Menge>3</Menge> <Preis>2,50</Preis> </Bestellposition> <Bestellposition> <Positionsnummer>2</Positionsnummer> <Menge>2</Menge> <Preis>12,50</Preis> </Bestellposition> <Bestellposition> <Positionsnummer>3</Positionsnummer> <Menge>1</Menge> <Preis>1,50</Preis> </Bestellposition> </Bestellung> Kann man sowas einfach realisieren ? Das Problem ist auch, dass dieses Abfrageergebnis nur per .csv so vorliegt. Ich habe keine Sourcecodes von dem Ursprungsprogramm ... Bin für jede Hilfe dankbar !!! Gruß, Boris |
Re: Nicht-Normalisierte Abfrage nach XML exportieren
Vielleicht so...
Delphi-Quellcode:
procedure CSVtoXML(Dateiname:string);
type TSpalte = (sKunde, sPNr, sMenge, sPreis); var Quelle, Ziel:Textfile; Zeile, oldKunde:string; Values:array[TSpalte] of string; Spalte:TSpalte; Posi:integer; begin assignfile(Quelle, Dateiname); assignfile(Ziel, ChangeFileExt(Dateiname, '.xml')); try reset(Quelle); rewrite(Ziel); oldKunde:=''; while not Eof(Quelle) do begin readln(Quelle, Zeile); for Spalte:=low(TSpalte) to high(TSpalte) do begin Posi:=pos(';', Zeile); if Posi = 0 then Posi:=length(Zeile)+1; Values[Spalte]:=copy(Zeile, 1, Posi-1); delete(Zeile, 1, Posi); end; if oldKunde <> Values[sKunde] then begin if oldKunde <> '' then writeln(Ziel, '</Bestellung>'); oldKunde:=Values[sKunde]; writeln(Ziel, '<Bestellung>'); writeln(Ziel, ' <Kunde>' + Values[sKunde] + '</Kunde>'); end; writeln(Ziel, ' <Bestellposition>'); writeln(Ziel, ' <Positionsnummer>' + Values[sPNr] + '</Positionsnummer>'); writeln(Ziel, ' <Menge>' + Values[sMenge] + '</Menge>'); writeln(Ziel, ' <Preis>' + Values[sPreis] + '</Preis>'); writeln(Ziel, ' </Bestellposition>'); end; if oldKunde <> '' then writeln(Ziel, '</Bestellung>'); finally closefile(Quelle); closefile(Ziel); end; end; |
Re: Nicht-Normalisierte Abfrage nach XML exportieren
Vergeßt nicht, das XML laut Konvention nur einen Hauptknoten besitzen darf.
ansonsten soltle das so auch erstmal gehn, im Prinzip mußt du nur die CSV-Datei auslesen und nach XML konvertieren. das ginge auch, indem du eine EXM-Datei erstellst und ihr die Daten übergibst (gibt hier ja genug XML-Libs zu finden) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 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