Avatar billede ruma1974 Nybegynder
07. november 2005 - 20:36 Der er 4 kommentarer og
1 løsning

OpenXML eksempel

Hej,

Er der nogen der haret kode eksempel der bruger OpenXML (http://www.philo.de/xml/) til at læse store XML filer (2 GB). Eller er der nogen kan vise mig hvordan jeg kan modificere koden nedenfor så at der ikke bruges så meget ram.

procedure TForm1.Button15Click(Sender: TObject);
var
I:integer;
Doc: TDOMDocument;
Node: TDomNode;
line:string;
List: TDomNodeList;
begin
Doc:=XmlToDomParser1.FileToDom(listbox1.Items[0]);
List := Doc.DocumentElement.GetElementsByTagName('scan');
for I:=0 to list.length-1 do
    memo1.Lines.add(List.item(i).nodeName);
end;

mvh,

Rune
Avatar billede arne_v Ekspert
07. november 2005 - 20:41 #1
Alle DOM baserede XML parsere bruger 3-5 gange fil størrelsen i RAM når
de læser filen ind i DOM træet.

En 2 GB fil og DOM hænger ikke sammen.

Du skal ud og lede efter en event drevet parser (enten pull eller push -
sidstnævnte kendt som en SAX parser).

Og nej jeg kender ikke en sådan til Delphi.
Avatar billede arne_v Ekspert
07. november 2005 - 20:45 #3
Avatar billede ruma1974 Nybegynder
07. november 2005 - 22:59 #4
sidst jeg forsøgte med Sax for pascal 1.1 fik jeg en lang række fjel under installeringen og måtte til sidst opgive at få det installeret. Jeg tror at jeg muligvis ender med at lave min egen simple XML parser til dette specifikke formål.

Hvis du lægger et svar får du point.
Avatar billede arne_v Ekspert
07. november 2005 - 23:02 #5
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester