Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?

  Alt 24. Apr 2019, 22:28
Hallo,
ein schöner provokanter Titel

ich habe diverse Xml-Dateien (20-50 MB gross).
Der Aufbau ist jeweils pro Datei fest vorgegeben, jeder Knoten ist in einer separaten Zeile (#13#10).

Bei der Nutzung diverser Xml-Komponenten (JEDI NativeXml, MS-XML, TXMLDocument) habe ich immer das Problem,
dass diese zeichenweise durch den ByteStream der Datei durchlaufen und dabei ihre internen Strukturen aufbauen.

Das passt ja auch ganz gut, wenn die Struktur unbekannt ist, aber ist ziemlich langsam.

Bsp.
Eine Datei mit einer sehr einfachen Xml-Struktur dauert aufgrund der Anzahl der Elemente (~50.000) sehr lange.
Baue ich das per StringList nach (ich kenne ja die einfache Struktur der Datei), dauert es statt der 30 Sekunden nur 0,5 Sekunden zum Laden der Daten.
Wie gesagt: Ich kenne die einfache Struktur.

Ich könnte jetzt für eine paar der Dateien eigene Lade-Implementationen bauen,
oder es gibt eine schnellere Implementation für Xml-Dateien?


Als Grundübel habe ich die lange Parser-Zeit und das Einsortieren in interne Strukturen erkannt (Quellcode hatte ich mir bei dem JEDI's angesehen).

Schön wäre eine On-the-fly-Implementierung, die bei jedem Knoten alle Parent-Knoten mitliefert,
und wo ich dann gezielt sagen könnte -> "Nehme ich und packe es in meine eigenen Strukturen".

Kennt jemand so eine Komponente?
Heiko

Geändert von hoika (24. Apr 2019 um 22:51 Uhr)
  Mit Zitat antworten Zitat