Since this is posted in the I/O and Streams, I would assume that you would want to do it programmatically. If the XML is lying at a remote server, I would try exploring on WebSocket and Streams to see if I can split the parsing. Transferring 500MB of data in one go is definitely not advised.
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!