The FIX format is surprisingly annoying to parse (as the non-XML format, i.e. the one still used by pretty much everyone, has no subgroup start and end markers, instead you have to work it out based on tag ordering rules, and tags that are not in a subgroup, the header or the tail can be in any order).
So rather than parse it yourself I'd recommend you use an existing library to do so.
The only well maintained open source option is the Java QuickFIX/J library.
There are many commercial solutions, e.g. CameronFIX