AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Große XML Datensätze auswerten

Ein Thema von Peter666 · begonnen am 23. Okt 2019 · letzter Beitrag vom 24. Okt 2019
Antwort Antwort
Seite 1 von 2  1 2   
Peter666

Registriert seit: 11. Aug 2007
317 Beiträge
 
#1

Große XML Datensätze auswerten

  Alt 23. Okt 2019, 12:51
Hi,

ich bin mir nicht sicher ob es hier in den Thread passt, aber ich mal eine Frage bezüglich großen XML Datensätzen. Für ein Projekt muss ich mit Lazarus größere XML Dateien auswerten. Mit größer meine ich Monster die bis zu 120GB umfassen. Jetzt bitte nicht verwundert die Augen reiben, das habe ich schon getan Gibt es so etwas wie XMLReader für C# auch in Delphi/Lazarus bei der die XMLs ohne Zwischenspeicher nur vorwärts gelesen werden? Die XMLs haben übrigens alle keine Linebreaks.

Peter
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
428 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 13:07
Zum Beispiel dieser SAX Parser hier. Nutze ich auch.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
317 Beiträge
 
#3

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 13:38
Cool,

Danke, aber der scheint die Datei in den RAM zu lesen. Das ist bei den Größen die ich hier habe nicht realisierbar.

Geändert von Peter666 (23. Okt 2019 um 13:45 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
428 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 13:51
Ups. habe erst jetzt gelesen 120 GB. Mein Gott.

Diesen hier hatte ich auch mal auf dem Radar.

Da steht unter anderem:

Code:
TXMLSeqParser (OXmlSeq.pas): Sequential DOM parser based on OXmlPDOM.pas.
Read huge XML files into the DOM sequentionally. This method combines DOM capabilities without the need to load the whole document at once.
OXmlSeq is even a little bit faster than OXmlPDOM.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.

Geändert von taveuni (23. Okt 2019 um 14:01 Uhr) Grund: Parser hinzugefügt
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.900 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 14:04
Ich weiß es ist nicht, wonach Du gefragt hast, aber statt zu fragen, ob das auch helfen könnte, gleich der Vorschlag:
xml-twig-tools
Hilft dabei, große (XML) Dateien zu zerlegen (fachgerecht).

Unter Linux über Paketmanager installierbar, unter Windows vielleicht mit cygwin. Der Code ist glaub ich frei verfügbar, python wenn ich mich richtig erinnere.
Gruß, Jo
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
372 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 14:13
Hi,

ich bin mir nicht sicher ob es hier in den Thread passt, aber ich mal eine Frage bezüglich großen XML Datensätzen. Für ein Projekt muss ich mit Lazarus größere XML Dateien auswerten. Mit größer meine ich Monster die bis zu 120GB umfassen. Jetzt bitte nicht verwundert die Augen reiben, das habe ich schon getan Gibt es so etwas wie XMLReader für C# auch in Delphi/Lazarus bei der die XMLs ohne Zwischenspeicher nur vorwärts gelesen werden? Die XMLs haben übrigens alle keine Linebreaks.

Peter
Sieh mal hier: https://mikejustin.wordpress.com/201...d-free-pascal/

SAX for Delphi habe selbst vor einigen Jahren mal verwendet, hat gut funktioniert.
Peter Below
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
317 Beiträge
 
#7

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 14:14
Danke, ich kann die aber nicht zerlegen. Zugriff darauf habe ich nur readonly. In C# gibt es den XMLReader der quasi den Stream liest und dir Element für Element ausgibt und man sich so durchhangelt.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
428 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 14:27
Danke, ich kann die aber nicht zerlegen. Zugriff darauf habe ich nur readonly. In C# gibt es den XMLReader der quasi den Stream liest und dir Element für Element ausgibt und man sich so durchhangelt.
Eben das scheint Oxml auch zu können. Ist allerdings nicht gratis.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
317 Beiträge
 
#9

AW: Große XML Datensätze auswerten

  Alt 23. Okt 2019, 14:44
Stimmt, ich hab das auch gerade gesehen. https://github.com/FMXExpress/Trolle...rce/OXML/units

Zum Testen reicht die Beta, den Rest muss El Jefe entscheiden.

Danke.
  Mit Zitat antworten Zitat
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
93 Beiträge
 
Delphi 2010 Professional
 
#10

AW: Große XML Datensätze auswerten

  Alt 24. Okt 2019, 10:05
Hallo, ich habe auch schon ähnlich große Dateien zerlegt. EBAY Categories. Ist schon Jahre her.
Damals habe ich auch mit verschiedenen Techniken gespielt. SAX war die Lösung. Ich habe dann NSoftware XMLp Parser verwendet. Der ließt direkt aus der Datei und erzeugt Events für die gefundenen Elemente wärend des drüber lesens.
Stefan
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Jetzt rächt sich die Natur und tötet uns.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf