XML parser indexiert eingabe string
-
Hallo zusammen!
Ich würde gerne in meinem Projekt XML files verwenden. Nun habe ich einen Parser gefunden, der aus einem xml-file, was zunächst in einem string gespeichert wird, eine DOM tree Struktur baut.
In der Beschreibung dieses Parsers steht dann:"First and foremost, because the generated document tree structure is directly indexed to the input string, you must ensure that the input string will exist for as long as you wish to traverse the tree. In addition, the string is altered by the parsing process .... "
Jetzt würde ich gerne wissen, was es bedeutet, wenn ein string indexiert wird?
Wie kann man sich das vorstellen? Warum wird das überhaupt gemacht? Weniger Speicher? Ist es nicht super langsam nur strings im XML Baum zu "speichern".
Man hat ja dann jede Menge string-vergleiche, wenn man den Baum nach einem Eintrag durchsucht.Sorry für die allgemeinen Fragen... vielleicht fehlt mir auch jede Menge Wissen, aber viellicht könnt ihr mir trotzdem ein wenig helfen...
Danke
Gruß
Volker
-
Wenn indexiert wird, dann heißt das, dass eben keine Strings im Baum gespeichert werden, sondern nur eine Positionsangabe (z.B.: String fängt bei Position 25330 an und ist 10 Zeichen lang...).
-
VolkerDD schrieb:
Ist es nicht super langsam nur strings im XML Baum zu "speichern".
Man hat ja dann jede Menge string-vergleiche, wenn man den Baum nach einem Eintrag durchsucht.Das geht einfach nicht anders. Das XML-Dokument liegt ja als string vor. Da der Standard nur vorschreibt, wie die Dokumentenstruktur auszusehen hat, kann ein XML-Parser auch nicht mehr machen als die Strings zu nehmen und bei der Suche nach einem Eintrag diese zu vergleichen. Strings zu vergleichen muss aber nicht wirklich super sangsam sein. Man nimmt ja nicht extrem lange Keys, ich hab noch keinen angetroffen mit >20 Zeichen.
-
Ok, danke für eure Hilfe...
Das hat jetzt ein bißchen Licht ins Dunkel gebracht.
Vielleicht sollte man von vornerein das XML Dokument so aufbauen, dass nicht so viele Vergleiche notwendig sind, ob zu einem Eintrag zu gelangen.Viele Grüße
Volker
-
VolkerDD schrieb:
Ok, danke für eure Hilfe...
Das hat jetzt ein bißchen Licht ins Dunkel gebracht.
Vielleicht sollte man von vornerein das XML Dokument so aufbauen, dass nicht so viele Vergleiche notwendig sind, ob zu einem Eintrag zu gelangen.Viele Grüße
VolkerWenn du keine Kontennamen nimmst, deren ersten 100 Zeichen (vermutlich ist das noch zu kurz) übereinstimmen und dann fortlaufend nummeriert werden ist die Benennung hinsichtlich der Performance egal. Du kannst ja mal ein Testprogramm schreiben, bei denen die Knotennamen kurz sind und eins, bei denen sie exorbitant lang sind. Und dann mißt du mal den Laufzeitunterschied.
-
Ok, das kann ich mal testen. Vielen Dank euch!