2GB XML files are beyond the limit of my direct experience with XML, but I can address you to a few places where you may be able to find the right answer:
- There is an article written by one of the creators of XML, dealing with this kind of problems.
- Additionally, there was a discussion here on Perlmonks (is XML too hard?), where there are several interesting points
- Finally, you may try your hand with XML::TokeParser, which is a module that came out of the above mentioned discussion.