If you will not be satisfied by XML::Twig, I can propose XML::Parser::Expat, or some similar parser: You can register your callbacks (i.e. perform your subroutines when, for instance, element start tag occurs or text node occurs), collect proper strings and, as Perlbotics advised, recalculate CRC from time to time.
The advantage is that you don't need whole collected text and you can write very proprietary callbacks, which will reflect required logic accurately. If you are not familiar with it, let me know and I will post an example here.