Ja du gehst eigentlich falsch ran, du solltest die Positionen eigentlich ned von aussen lesen ...
qint64 QIODevice::pos () const [virtual]
For random-access devices, this function returns the position that data is written to or read from. For sequential devices or closed devices, where there is no concept of a "current position", 0 is returned.
Du liesst schoen hintereinander aus dem file im readonly modus, und dein Parser hat ja keinen plan, das es sich um random access faehiges "device" handelt = du hasst nen typisches "sequential devices" was durch nen QFile nur bedient wird .... pos muss also immer 0 sein ....
DU musst dich also definitiv in den Leseprozess einschieben .....
variante 1:
QIODevice neu implementieren .....
variante 2:
QXmlInputSource implementieren ....
Klingt schwerer als es ist
Nen QIODevice mittels QFile implementieren, wo dich nur in die readmethode einklingst, sollt recht fix gehen ...
Ciao ...