Delphi-PRAXiS
Seite 3 von 5     123 45   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern? (https://www.delphipraxis.net/200475-endlich-mal-eine-schnelle-xml-komponente-gesucht-oder-selber-tippern.html)

hoika 26. Apr 2019 07:19

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Hallo,
ja, davon kannst Du ausgehen.
Ich fülle einmal eine eigene interne Struktur und benutze dann nur noch diese eigene interne Struktur.

aktuell (Pseudocode):
Xml.LoadFromFile;
AdresseNode:= Xml.NodeByName('Person').NodeByName('Adresse');
Strasse:= AdresseNode.Value['Strasse'];
HausNr:= AdresseNode.Value['HNr'];

<Person>
<Adresse>
<Strasse V="Musterweg"/>
<HNr V="3"/>
</Adresse>
</Person>

Das Problem bei mir ist, das die Datei etwa 100.000 Zeilen hat und ich davon etwa 50.000 für mein Programm brauche.

SAX würde da wohl wirklich helfen.
Ich bin mir nur nicht sicher, wie das ablaufen soll. Ich probier es einfach aus.

Noch mal zu eigenem Code.
Die Struktur ist ja fix. Jeder Node ist in einer eigenen Zeile.
Ich könnte die Datei in eine StringList laden, die dann einfach mit einer Schleife durchlaufen
und mir dir einzelnen Personen zusammensuchen.

haentschman 26. Apr 2019 07:22

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

ich suche noch nach einem aktuellen Download
https://www.delphipraxis.net/130751-...-himix-ml.html
1. Post, ganz unten (Download)

PS: klein aber oho. 8-)

:?: himitsu ist wieder mal verschollen...

hoika 26. Apr 2019 07:27

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Hallo,
Zitat:

ganz unten.
Ja, die hatte ich mir ja runtergeladen, waren aber von 2010.
Wie ich schon weiter oben geschrieben hatte.

haentschman 26. Apr 2019 07:31

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Eine neue neuere gibt es nicht. Funktioniert auch mit aktuellem Delphi.

hoika 26. Apr 2019 07:33

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Hallo,
danke.

hans65 26. Apr 2019 08:08

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Ich hatte schon einmal den XMLParser (ALXmlDoc.pas )von https://github.com/Zeus64/alcinoe im Einsatz.
Bei meinen kurzen Tests war er schneller als das Delphi-eigene TXMLDocument.
Ein zusätzlicher Vorteil war, dass die Komponente einen Mischbetrieb zwischen Sax und Dom unterstützt. Man konnte also eine Xml-Datei nur teilweise einlesen, z.B. bis zum Ende eines Hauptknotens, alles bequem im Dom auswerten und dann freigeben und mit dem nächsten Element fortsetzen.

jobo 26. Apr 2019 08:08

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Mit dieser Struktur komme ich nur auf ca 1/5 der genannten Größe:
Code:
<Person>
    <Adresse>
        <Strasse V="Bahnhofstr."/>
        <HNr V="68"></HNr>
    </Adresse>
</Person>

sh17 26. Apr 2019 08:10

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

Zitat von hoika (Beitrag 1430947)
Der XmlParser (destructor) sieht ja nicht schlecht aus.
Ich verstehe nur noch nicht, wie ich an die einzelnen Knoten rankomme.
Bisher greife ich über NodeByName auf das interne DOM zu.
Aber ich hatte es mir schon gedacht, das das eine komplette Code-Umstellung mit sich bringt.

Ja, solltest Du Dir mal anschauen, ein SAX Parser arbeitet nun einmal eventbasiert. Aber so groß ist die Code-Umstellung dann nicht. OXml kann mit anonymen Methoden arbeiten. Da geht das alles in einem Rutsch.

hoika 26. Apr 2019 09:12

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Hallo,
Zitat:

Mit dieser Struktur komme ich nur auf ca 1/5 der genannten Größe:
Hm ?

Zitat:

ein SAX Parser arbeitet nun einmal eventbasiert
Schon klar, ich bin ja lernfähig ;)

jobo 26. Apr 2019 09:15

AW: Endlich mal eine schnelle Xml-Komponente gesucht oder selber tippern?
 
Obige Struktur mal 100000 "Datensätze" z.B. ergibt bei mir eine Datei von ca 10 MB Größe. Die Struktur ist also unvollständig, oder es gibt ein Missverständnis, jedenfalls ist ein tatsächlicher Zeitvergleich damit nicht möglich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.
Seite 3 von 5     123 45   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf