![]() |
OmniXML
Hallo,
ich habe ein Projekt umgestellt auf Datenspeicherung in XML-Dateien (zuvor ein proprietäres, binäres Format). Dafür verwende ich OmniXML (MS-XML ist sehr langsam). Wenn ich nun größere Dateien verarbeite, kommt es unter Windows 98/ME zu einem Phänomen (tritt auf Windows XP/2000 nicht auf): Das Programm reagiert nicht mehr beim Speichern. Mein Programm läuft so (Prinzip-Schema in Pseudo-Code):
Code:
Das Programm stürzt immer an der Stelle ab, wo ich in der Speichern-Routine folgendes angegeben habe:
Daten aus XML-Datei in interne Struktur laden
Daten bearbeiten (in interner Struktur) XML-Struktur anlegen Daten in XML-Datei speichern
Delphi-Quellcode:
(xmlDoc wird bei mir global verwendet für alle XML-Dateioperationen).
xmlDoc := CreateXMLDoc;
Wenn ich diese Zeile entferne, funktioniert es zwar prinzipiell, allerdings stehen dann alle Daten doppelt in der XML-Datei (inklusive zweier Root-Nodes, es gibt also keine Wohlgeformtheit mehr). Auch der Trick, zuvor den Rootnode wegzuwerfen, bringt mich nicht wirklich weiter:
Delphi-Quellcode:
In diesem Fall funktioniert zwar das Schreiben in die XML-Struktur, dann aber reagiert das Programm nicht mehr, wenn
xmlDoc.removeChild(xmlDoc.documentElement);
Delphi-Quellcode:
aufgerufen wird.
xmldoc.SaveToStream(Stream);
Wie kann ich dieses Problem elegant lösen? Oder gibt es eine besser funktionierende Alternative zu OmniXML? Mit OpenXML komme ich leider nicht klar, MS-XML ist sehr langsam :-( Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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