It depends just how big the file is, and how much slower whatever processing you're doing is compared to how long it takes just to parse the file.
I've done a lot of projects where I get a MARC file out of my ILS, make some changes, and write the records back to the ILS. Saving the records is so much slower than anything else I'm doing that reading the file twice doesn't make a noticeable difference in the runtime, and is worth it to get progress. In the worst case, your processing is super fast per-record and just adding a progress bar doubles the runtime,
You might be able to do something clever by checking the size of the file and estimating how far through it you are, but I'm not sure there's a good way, while iterating the records, to get the size of the XML each record came from.