Autor Thema: XML Datei Zeilenweise lesen  (Gelesen 9357 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Nioc

  • Gast
XML Datei Zeilenweise lesen
« am: 10. Dezember 2009, 14:08:01 »
Ich habe eine Frage zu dem XML_READER, und zwar möchte ich den Inhalt einer XML-Datei auslesen und damit meine Anwendung initialisieren.
Das funktioniert soweit auch super. Einziger Haken ist, dass ich die Datei komplett in den Buffer lesen muss, um diesen dann dem XML_READER zu übergeben. Das heißt natürlich, dass ich einen entsprechend großen Buffer vorhalten muss, was mit zunehmender Dateigröße zu Speicherknappheit führt. Hat jemand eine Idee, wie ich die Datei in kleinen Häppchen (z.B. Zeilenweise) dem READER zuführen kann?

Vielen Dank im Voraus,
Robert

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re:XML Datei Zeilenweise lesen
« Antwort #1 am: 10. Dezember 2009, 14:59:53 »
hallo nioc

wie gross ist denn deine xml-datei ?
kannst du deine setup_xml datei nicht in mehrere files splitten und hintereinander verarbeiten. ?

da der xml_reader sich obsolut im buffer hocharbeitet, gibt es kein rezept für dein problem, ohne den baustein komplett umzukrempeln

Zu der Problemstellung habe ich mir auch schon gedanken gemacht, aber die Zeit ist mein grösster gegenspieler !

1. Um das zu lösen würden wir einen XML_READER benötigen der im Streaming verfahren arbeitet
   darüber habe ich schon länger nachgedacht, und auch schon lösungsansätze erarbeitet.
   ich werde also einen XML_READER_STREAM einplanen, das problem ist halt das eine xml_zeile eigentlich beliebig lange sein kann !

2. damit das einfach funktioniert wäre ein plattformneutraler zugriff auf Dateien über oscat von vorteil
    eine funktionierende referenz_lib gibt es schon auf PCWORX, und muss noch für codesys adaptiert werden

3. ich habe dieses Prinzip bei mir schon mit einen INI File reader am laufen
   dieser baustein kann eine beliebig grosse ini.datei (format wie bei windows ini files) selbst mit einen 1 byte grosses filebuffer verarbeiten

also an deinen wünschen/problemen wird gearbeitet, aber es dauert halt immer etwas....
« Letzte Änderung: 10. Dezember 2009, 15:06:07 von peewit »