![]() |
Schnelle XML Lib für große Dateien gesucht
Hi,
Ich bin im Zuge meines ![]() Die Rohdaten sind in einem XML-ähnlichen Format gespeichert. Der Download für Deutschland fasst "niedliche" 400 MB und ist entpackt gute 4 GB groß. Aber auch wenn ich nicht selbst das Rendern übernehme, muss ich zum Aufbau einer Web-API für das Programm eine DB mit allen Straßen und Orten Deutschlands und den dazugehörigen Geokoordinaten aufbauen. Testweise habe ich mir die OSM-Datei für Schleswig-Holstein genommen, die entpackt "nur" 128 MB groß ist und ca. 2,5 Mio. Zeilen fasst. Muetze1s XMLLib scheitert leider an der Größe, und himiXML is ja noch nicht feddisch.. :stupid: Gefallen hat mir OmniXML, was auf meinem Core2Duo-Läppi mit 4GB RAM in gefühlten 2 Minuten mit dem Laden fertig war. Könnt ihr mir noch andere Libs empfehlen, die vielleicht schneller sind? Gruß, Daniel |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Überhaupt auf die Idee zu kommen, das so zu versuchen, zeigt auf, dass dir diese beiden gegensätzlichen Interfaces zum XML Zugriff nicht geläufig sind. Ich empfehle dir dringendst dich damit zu beschäftigen und dann deine Auswahl/Entscheidung neu zu treffen/überdenken. Sorry, aber bei solchen Aussagen könnt ich mich immer wieder aufregen. Das erinnert mich gleich an den ![]() Nichts persönliches, aber es wird immer gerne gemeckert (hast du nicht getan) und dann ist man schnell der Unfähige, obwohl diejenigen meistens einfach uninformiert sind. Also bitte nicht auf dich beziehen. |
Re: Schnelle XML Lib für große Dateien gesucht
Moin Muetze,
aus deinem leicht gereiztem Kommentar lese ich mal raus, dass ich und der Kollege in deinem Blog nicht die Ersten sind. ;) Das "leider" bezog sich auch eher darauf, dass ich die Lib gerne benutze, da sehr einfach. ;) Zitat:
Zitat:
Zitat:
Gruß, Daniel Edit: Ich habe eben SAXforPascal entdeckt. Das letzte Downloadpaket ist zwar von 2003, aber ich lasse mich mal überraschen.. Edit2: Nee... Bringt leider nicht das gewünschte Ergebnis, da man soviel anpassen muss. Der Parser bricht bei dem Dokument einfach irgendwann ab... Bin also wieder offen für Vorschläge/andere SAX Implementationen... Edit3: Soo... Ich habe bei Torry ![]() |
Re: Schnelle XML Lib für große Dateien gesucht
Hi!
Zitat:
Aber ich hatte es auch nicht so verstanden, wie geschrieben: nichts persönliches. Bei einem DOM Parser wird die XML Datei geparst und jeder Knoten wird entsprechend im Speicher dargestellt und ist somit jederzeit sofort verfügbar. Bei einem SAX Parser wird grundsätzlich nichts im Speicher angelegt sondern er hangelt sich durch die Struktur der XML Datei und ruft immer einen entsprechenden Callback auf für den aktuellen Kontext den er gerade parst (Text, Node, Attribute, etc). Der Callback kann von dem Nutzer des Parsers dann genutzt werden um, wenn Struktur, Position und Name stimmen, die entsprechenden Informationen abzulegen. Dafür kann man dem Sax Parser auch mal sagen: überspringe die aktuelle Subknoten und gehe zum nächsten Knoten auf gleicher Ebene, etc. Auch einen Knoten oder zurück oder direkte Addressierung eines Elementes um von da an zu parsen. Dies ist der richtige Weg bei grossen Datenmengen, da du eh nur einen Teild er Daten aus der großen Menge brauchst. Von daher entweder vor dem rendern der Kartendaten vllt. ein paar Details vorher ermitteln oder alles online ermitteln beim malen. Aber ein kleines Vorcache sollte sich da schon anbieten. Das SAX Prinzip unterscheidet sich aber halt völlig vom DOM Prinzip, muss es aber auch - sonst würden wir immernoch dabei sein und alle Daten in den Speicher laden. Und nun zu den Links: 1. DOM Modell: ![]() 2. SAX Modell: ![]() 3. SAX Implementation für Delphi: ![]() ![]() ![]() Das SAX Projekt ist von 2003 und man müsste nach dem Download erstmal die auf der SF.net Seite angegebenen Bugs fixen, aber es ist eine Möglichkeit. Alle anderen Möglichkeiten wären entsprechende ActiveX Objekte wie z.B. MSXML. Dieser kann beides DOM & SAX und wird ja von CodeGear aufbereitet mitgeliefert. |
Re: Schnelle XML Lib für große Dateien gesucht
Darf ich fragen, wieso man die XML-Daten nicht 'einfach' in ein geeignetes Format übersetzt, z.B. in eine Datenbank? Ich weiss zwar nicht en Detail, wie man auf die Daten zugreifen muss, aber imho sollte eine gut geplante Datenbank den Job doch mit links erledigen, oder nicht?
|
Re: Schnelle XML Lib für große Dateien gesucht
Falls Du auf Unicode verzichten kannst, kann ich Dir diese Komponente empfehlen:
![]() Ist ein SAX-Parser und ziemlich flott obendrein. |
Re: Schnelle XML Lib für große Dateien gesucht
Hi ihr,
Zitat:
Zitat:
Zitat:
Zitat:
Aber da sprichst du einen Punkt an, den ich selbst noch nicht bedacht habe: Unicode-Fähigkeit müsste gegeben sein. Ich geh zwar nicht davon aus, dass jemals ein Asiate das Programm nutzen wird, aber eventuell gibt es ja Leute aus Deutschland, die in Asien eine Rundreise planen (auch wenn ich mich auf die asiatische Karte dafür noch nicht verlassen würde). Da wäre es ungeschickt, wenn man nur Kästchen sehen würde. |
Re: Schnelle XML Lib für große Dateien gesucht
Falls sicher ist, das sich das XML-Format nicht ändert, könnte ein handgebissener 'Parser' die richtige Lösung sein. Mit einem optimierten PosEx aus dem FastCode-Projekt hüpfe ich in einem Knoten der Form '<Foo Uninteresting stuff Bar="Wupdi"..' sehr schnell von '<Foo' zu 'Bar="Wupdi"' und habe somit das Wupdi schnell extrahiert. Ich hüpfe also von Knoten zu den Attributen (die stehts in der gleichen Reihenfolge sein müssen) und wieder zum nächsten Knoten und extrahiere die Daten aus einem 50MB Winzling in knapp einer Sekunde. Großartig optimiert ist mein Code nicht, denn mir reicht das.
|
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Jetzt mal ehrlich, wenn die XML-Datei stolze 4 GB groß ist, dann drückt wohl eher dein verbauter Festwertspeicher auf die Performancebremse. Da kannst du noch so oft vergleichen. Nicht zu vergessen ist die Tatsache, das sich die Datei beim zweiten Vergleich bereits zum Teil noch im Speicher befindet und du mit Sicherheit dein System nicht neugestartet hast. Zweitens haben Alzamir und Muetze1 vollkommen recht. Ein 4 GB XML-File mit einem DOM-Parser in den Speicher laden ist einfach nur hohl. :stupid:
Ein SAX-Parser mit Hibernate plus entsprechender Datenbank sind da wohl die gewünschte Lösung. :angel: |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Alzamir hat seinen Tipp mit der Datenbank doch schon gegeben.
Haste ja am Anfang nicht erwähnt. :zwinker: Die Jungs vom FastString-Projekt konnten ihre XML-Bestände mit ihren Routinen ordentlich optimieren, aber bei einer in UTF-8 kodierten XML-Datei, wäre ich da etwas vorsichtiger. Wenn man von Standards abweichen möchte, muss man sich nicht wundern (nicht zwingend jetzt aber vielleicht in zwei Jahren), wenn Datenbestände zur Hälfte inkonsistent sind, weil irgendwelche 0815-Parser die Standards nicht einhalten. So ein XML-Parser schreibt sich ja nun auch nicht von heut auf morgen. (siehe Muetze1, Himitsu, MSXML, OmniXML und Co.) |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
nja, nun bin ich schon recht weit, da wär's blöd jetzt aufzuhören ... vorallem da ich hier noch ein Projekt hab, welches mal damit arbeiten soll :stupid: (wegen dem hab ich überhaupt erst damit angefangen) |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Zitat:
![]() ![]() Ich werde mir wohl eine Klasse schreiben, die zum Einen die XML-Datei parst und zum anderen die Daten in eine DB schreibt. Das ist nach dem Thread in meinen Augen die beste Lösung. Zumal man sicher auch schon ein paar Routen vorberechnen müsste. Ob das aber alles für eine lokale DB taugt... Mal sehen.. |
Re: Schnelle XML Lib für große Dateien gesucht
Hallo Daniel,
ich verwende NativeXML von SimDesign, kostet nicht viel und soll auch bei riesigen Datenmengen schnell sein. Hier mal ein Benchmark eines Demo-Projektes: Zitat:
![]() Gruß Jürgen |
Re: Schnelle XML Lib für große Dateien gesucht
Hi Pfoto,
Danke für den Hinweise. :thumb: Allerdings stoßt es mir etwas sauer auf, wenn ich eine kommerzielle Unit in einem GPL-Projekt verwenden sollte. Dennoch danke.. ;) |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Ich danke euch für die Hilfe. :thumb: |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Ja, zum Debuggen war mir das gestern zu spät. :) Ich habe mal geguckt, er hängt bei dieser Funktion:
Delphi-Quellcode:
Ich werde mal gucken, was es für Lösungen zu diesem Problem im Forum gibt, aber ich denke mal, ich bräuchte irgendwie angepasste Funktionen von FileSize und BlockRead, die eben nicht den Integer nutzen, sondern einen größeren Datentyp.
FUNCTION TXmlParser.LoadFromFile (Filename : STRING; FileMode : INTEGER = fmOpenRead OR fmShareDenyNone) : BOOLEAN;
// Loads Document from given file // Returns TRUE if successful VAR f : FILE; ReadIn : INTEGER; OldFileMode : INTEGER; BEGIN Result := FALSE; Clear; // --- Open File OldFileMode := SYSTEM.FileMode; TRY SYSTEM.FileMode := FileMode; TRY AssignFile (f, Filename); Reset (f, 1); EXCEPT EXIT; END; TRY // --- Allocate Memory TRY FBufferSize := Filesize (f) + 1; GetMem (FBuffer, FBufferSize); EXCEPT Clear; EXIT; END; // --- Read File TRY BlockRead (f, FBuffer^, FBufferSize, ReadIn); //<= DORT. Der Wert von FBufferSize ist durch den Integerüberlauf negativ. (FBuffer+ReadIn)^ := #0; // NULL termination EXCEPT Clear; EXIT; END; FINALLY CloseFile (f); END; FSource := Filename; Result := TRUE; FINALLY SYSTEM.FileMode := OldFileMode; END; END; Gruß, Daniel |
Re: Schnelle XML Lib für große Dateien gesucht
Was spricht denn gegen den guten alten XmlReader aus dem .Net Framework?
Der lässt ist ebenfalls non-cahing/forward-only und lässt einige SAX Parser weit hinter sich. Ist auch noch super easy zu nutzen:
Code:
var readerSettings = new XmlReaderSettings
{ ValidationType = ValidationType.None, IgnoreComments = true }; using (var fs = new FileStream("yourFrigginHugeFile.xml", FileMode.Open, FileAccess.Read)) using (var reader = XmlReader.Create(fs, readerSettings)) { while (reader.Read()) { //... } } |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Eventuell die Angabe der Delphiversion in meinem Profil :stupid: Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Solltest Du MySQL nutzen, könnte ja auch
![]() |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Zitat:
Gut, mein Parser läuft nur stückchenweise und läd größere Dateien möglichst nur in 64 KB-Stückchen, aber dennoch landet der XML-Tree danach im RAM, wie bei vielen anderen Parsern. Bei mir würde da allerdings eine 1 GB-Datei nur maximal + 64 KB (für's Laden) ~1 GB (die Daten) + ein paar Byte je für je 2 Objekte pro Node belegen, wärend es bei anderen dann 1 GB (für's Laden) + ~1 GB (die Daten) + die Verwaltung ... ja und dann kommt noch die fragmentierung des Speichermanagers dazu ....... also bei über weit 1 GB bekommst du so oder so arbe Probleme diese in ein 32-Bit-Delphi-Programm reinzubekommen, wo nur ~2 GB zur Verfügung stehen. Wenn mein aktuelles XML-Projekt mal steht, ist zwar noch ein weiterter Parser geplant, welcher dann mit größeren Dateien klar kommen sollte, aber von schnell kann dann nicht mehr die Rede sein, da dieser dann einen Großteil der Daten direkt auf der "langsamen" Festplatte lagert, bzw, liegen läßt. |
Re: Schnelle XML Lib für große Dateien gesucht
Irgendwie ist das alles... :kotz:
Ich hab jetzt also im Prinzip zwei Möglichkeiten: Entweder versuche ich der Lib beizubringen, eine Datei stückchenweise einzulesen, das Eingelesene zu verarbeiten und dann den Puffer für das nächste Stück freizugeben, oder ich nutze gleich eine andere Implementation... :? |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Zitat:
/EDIT: zu den MMF: Wenn die XML Lib es unterstützt aus einem TStream Nachfahren zu Laden, dann nutze die MMF Filestream Implementation aus meiner XMLLib. Diese implementiert das MMF transparent ohne das der Nutzer des TStream Nachfahren was davon bemerkt. |
Re: Schnelle XML Lib für große Dateien gesucht
Wie wäre es denn, sog. "Memory Mapped Files" zu verwenden? Aus Sicht Deiner Anwendung läge die gesamte Datei dann im Speicher und Du kannst mit einem Pointer komplett drüberrutschen. Welche Fetzen der Datei dann tatsächlich im Speicher sind und welche nicht, übernimmt dann das OS.
//edit: gnapf ... zu langsam :stupid: |
Re: Schnelle XML Lib für große Dateien gesucht
Solange aber ein Node nicht in den gemappten Bereich reinpaßt, muß man mehr Seicher nachmappen ... ist alles schon ein klein bissl aufwändiger. (hatte es anfangs auch mal über MMF, aber es dann doch etwas anders gelöst :angel2: )
oder man mappt die gesamte Datei in den RAM, aber daß hat auch wieder einen kleinen Nachteil ... die Datei müßte dann meistens als ein Stück vorliegen und die müssen erstmal zusammenhängend vorliegen und dann wäre ein ganzes Stück vom virtuellen Speicher belegt. |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Zitat:
Damit ihr mal seht, worüber wir eigentlich die ganze Zeit philosophieren: So sieht eine OSM-Datei aus:
XML-Code:
//Header <?xml version='1.0' encoding='UTF-8'?> <osm version="0.5" generator="Osmosis 0.29"> <bound box="53.35408,8.05388,55.09603,12.03859" origin="http://www.openstreetmap.org/api/0.5"/> //Paar tausend Zeilen übersprungen <node id="13345659" timestamp="2008-12-14T16:57:25Z" user="Gluko" lat="53.9024873" lon="10.777812"/> <node id="13345660" timestamp="2008-12-14T16:59:07Z" user="Gluko" lat="53.90483" lon="10.779308"/> <node id="13345661" timestamp="2008-12-14T16:58:56Z" user="Gluko" lat="53.9045348" lon="10.7796025"/> <node id="13345662" timestamp="2009-01-23T14:08:35Z" user="itschytoo" lat="53.899494" lon="10.7674726"/> <node id="13345663" timestamp="2009-03-22T10:48:30Z" user="itschytoo" lat="53.8993371" lon="10.7675229"/> <node id="13345664" timestamp="2009-01-23T14:08:35Z" user="itschytoo" lat="53.8989988" lon="10.7644318"/> <node id="13345665" timestamp="2009-02-28T14:21:15Z" user="Maarten Deen" lat="53.8985106" lon="10.759474"> <tag k="barrier" v="toll_booth"/> <tag k="name" v="Herrentunnel Lübeck Nord"/> <tag k="operator" v="Herrentunnel Lübeck GmbH & Co. KG"/> </node> <node id="13345670" timestamp="2009-01-23T14:08:35Z" user="itschytoo" lat="53.8986935" lon="10.7615206"/> <node id="13345672" timestamp="2009-01-23T14:08:35Z" user="itschytoo" lat="53.8984061" lon="10.7579444"/> <node id="13345673" timestamp="2009-03-19T14:20:45Z" user="itschytoo" lat="53.8971746" lon="10.7492752"/> <node id="13345674" timestamp="2009-01-23T14:08:45Z" user="itschytoo" lat="53.8980463" lon="10.7543967"/> <node id="13345680" timestamp="2009-03-22T10:48:29Z" user="itschytoo" lat="53.8976444" lon="10.7523478"/> <node id="13345681" timestamp="2009-03-19T14:23:04Z" user="itschytoo" lat="53.8972377" lon="10.7511739"/> <node id="13345683" timestamp="2009-03-19T14:24:27Z" user="itschytoo" lat="53.8952786" lon="10.7510925"/> <node id="13345685" timestamp="2008-09-01T07:03:44Z" user="Lübeck" lat="53.8949418" lon="10.7519724"> <tag k="created_by" v="JOSM"/> <tag k="highway" v="traffic_signals"/> </node> //Paar tausend Zeilen übersprungen <way id="27190543" timestamp="2008-09-20T10:34:08Z" user="phobie"> <nd ref="275411385"/> <nd ref="275411386"/> <nd ref="274748737"/> <tag k="name" v="Lindenweg"/> <tag k="highway" v="residential"/> </way> <way id="27190544" timestamp="2008-09-20T10:34:09Z" user="phobie"> <nd ref="274748080"/> <nd ref="298365383"/> <nd ref="298365384"/> <tag k="noexit" v="yes"/> <tag k="highway" v="service"/> </way> //Wieder ein paar hundertausend Zeilen übersprungen <relation id="16007" timestamp="2009-04-13T07:20:56Z" user="UncleOwen"> <member type="way" ref="24737571" role=""/> <member type="way" ref="24737575" role=""/> <tag k="name" v="Liebermannweg"/> <tag k="route" v="road"/> <tag k="created_by" v="JOSM"/> <tag k="type" v="route"/> </relation> <relation id="16008" timestamp="2009-04-13T07:20:56Z" user="UncleOwen"> <member type="way" ref="21107760" role=""/> <member type="way" ref="24737566" role=""/> <member type="way" ref="24737581" role=""/> <tag k="name" v="Luise-Schröder Ring"/> <tag k="route" v="road"/> <tag k="created_by" v="JOSM"/> <tag k="type" v="route"/> </relation> <relation id="16010" timestamp="2009-04-13T07:20:55Z" user="UncleOwen"> <member type="way" ref="22672888" role=""/> <member type="way" ref="24737825" role=""/> <member type="way" ref="24737826" role=""/> <member type="way" ref="26248001" role=""/> <member type="way" ref="28090656" role=""/> <member type="way" ref="28090657" role=""/> <tag k="name" v="Esinger Weg"/> <tag k="route" v="road"/> <tag k="created_by" v="JOSM"/> <tag k="type" v="route"/> <tag k="highway" v="residential"/> </relation> //Ende </osm> |
Re: Schnelle XML Lib für große Dateien gesucht
Bastel Dir deinen eigenen 'Extractor' (Parser kann man das dann nicht nennen), der über ein Sliding Window von z.B. 10MB (Hausnummer) über die Datei rudert und deine Daten aufsammelt.
Du hältst also immer 10MB der Datei im Speicher und sprichst diese als langen String an. WEnn Du bei 90% angelangt bist, verschiebst Du die noch nicht untersuchten 10% nach vorne und lädst dahinter die nächsten 90% rein*. Dann geht es quasi von Vorne wieder weiter. So harkst Du dich duch beliebig lange Dateien und bist auch noch schnell dabei. * Die 10% sind nur ne Hausnummer. Der Gap hängt mit der zu suchenden/parsen Wortgröße zusammen und verhindert, das der erste Teil des zu suchenden Wortes ganz am Ende des Slidingwindows ist und so nicht gefunden werden würde. Anstatt 10MB könnten 50 oder 100MB vielleicht günstiger sein. Das müsstest Du testen. |
Re: Schnelle XML Lib für große Dateien gesucht
Moin alzaimar,
ja, ich denke, so werde ich das wohl machen. Wäre es eigentlich.. uhm... "unelegant" ![]() //Edit: Mit ReadLN verarbeitet er die kleine Datei bei eingeschalteter Optimierung innerhalb von 10 Sekunden, für die große 4 GB Datei benötigt er gute 2 1/2 Minuten. Dann käme noch die Verarbeitung und das Schreiben in die SQL-DB dazu. Ich habs mitm FileStream zuerst versucht, und einem simplen Beispiel. Aber er hat mir nur Exceptions an den Kopf geschmissen, die mir zumindest nichts gesagt haben... :gruebel: //Edit2: Gäbe es doch einen MySQL-Dump zum Download... :wall: //Edit3: Ok, ignoriert meinen Geistesblitz mit ReadLN oben. Ich hatte eben die Erleuchtung bezgl. TFileStream. ;) |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
Ok,
danke für den Hinweis mit dem CDATA. Sollte wohl nie vorkommen, aber man kann ja nie wissen... ;) |
Re: Schnelle XML Lib für große Dateien gesucht
ich wollte mir mal dieses NativeXML von SimDesign ansehn ...
![]() nur existiert die ![]() und ![]() ![]() dann hab ich mal 'nen Test gestartet
Delphi-Quellcode:
6,9 Minuten um 1,98 GB RAM zu belegen und zum Erstellen von 4 Millionen solcher Knoten:
fill TXMLFile with 4.000.000 nodes, save into and load this from a file
create:0 fill:413022 save:404106 free:3261 EXMLException: EXMLException (TXMLFile.ParsingTree): invalid name Error on byte position 655.447 ("<Node6850 name="fcxv") create:0 load:157 free:0 fill TXMLDocument with 4.000.000 nodes, save into and load this from a file ...
XML-Code:
<Node123456 name="fcxvysdfgcxvcx" vc1x3y="fcxvysdfgcxvcx>123456gfdxv234rf56dfgcvbf</Node123456>
Aber wurde ja auch schon erwähnt, daß eine DOM-Version für sowas nicht wirklich geeignet ist (obwohl meine Version 2 irgendwann mal wesendlich mehr verkraften wird und dennoch als DOM läuft) Na gut, dann muß ich jetzt noch den Grund für diese Exception rausfinden und kann dann mal Testen was mein Code in seinem pseudo-SAX-Mode hinbekommt. Das wird aber geschwindigkeitsmäßig nie an einen guten und reinen SAX-Parser rankommen können. Zum Testen hab ich mir mal finland.osm (614 MB) geladen [edit] OK, ich lad mir gleich nochmal 'ne kleinere Testdatei (das obere Beispiel mit 4.000.000 Knoten ergibt nur eine 386 MB-Datei ... da bekomm ich die 614 wohl nicht direkt geladen :nerd: ) |
Re: Schnelle XML Lib für große Dateien gesucht
Hi himi,
![]() |
Re: Schnelle XML Lib für große Dateien gesucht
Blos mal so aus Interesse ... hast du eigentlich mal alles da runtergeladen und entpackt?
Wie groß mag das denn insgesamt sein? :shock: ja und mal sehn ... Polen ist grad unterwegs (UMTS ist halt nicht unbedingt flott) |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
|
Re: Schnelle XML Lib für große Dateien gesucht
ist falsch ... war 'nen Kopier-/Schreibfehler ... also das " ist schon da
hatte die Knotten per Hand direkt aus'm Quelltext
Delphi-Quellcode:
zusammengesetzt, da ich diese 386 MB XML-Datei grad in keinem Texteditor laden konnte, um es zu kopieren :roll:
For i := 0 to 3999999 do Begin
Node := XML.RootNode.Nodes.Add('Node' + IntToStr(i)); Node.Attributes.Add('name', 'fcxvysdfgcxvcx'); Node.Attributes.Add('vc1x3y', 'fcxvysdfgcxvcx'); Node.Data := '123456gfdxv234rf56dfgcvbf'; |
Re: Schnelle XML Lib für große Dateien gesucht
Zitat:
Ja, sind schon ne Menge Rohdaten... ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 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