Czy w takim przypadku można w jakiś sposób najpierw zliczyć te węzły które nas interesują? W XMLReader można by to zrobić przepuszczając całe parsowanie przed właściwym parsowaniem (czyli dwa razy parsuje duży plik) w którym np. $i++ zliczałaby to co nas interesuje.
W SimpleXML
$xml = simplexml_load_string($feed);
takie coś od razu daje mi liczbę wszystkich elementów, które będę parsować - ale przy wielkich plikach XML stosuje się XMLReader.
Ewentualnie użyć SimpleXML i załadować to wszystko do pamięci i policzyć jak powyżej, a potem parsować w XMLReader.
Pytam pod takim kątem, że np. podczas przebiegu parsera chciałbm widzieć pasek postępu - w ajaxie, a do tego potrzebna mi jest na początku liczba wszystkich parsowanych elementów.
A jak Wy myślicie?