Thank you, the data is an Amateur Radio Data interchange format. I think you are right that they saw XML and did not really know what was going on. Your solution is simple and now to understand it. So far two answers in two hours is great and two different ways of doing it.
I think you are right that they saw XML and did not really know what was going on.
Actually, the format makes more sense than you and GrandFather give it credit. The general field format is:
'<' identifier ':' length '>' value
There also looks to be a date, that's marked 'd' , after the length (in field qso_date).
I'd much rather have to parse this format than something like METAR, where you have to make guesses about the fields you're processing based on their order and format.