XML seems to require that every tag starts with an alphanumeric character, underscore or colon
But it looks to me that the op's tags do start with "an alphanumeric character, underscore or colon".
I find this error occurs only if XML::SAX is not installed. If XML::SAX is installed, then it gets used instead of XML::Parser, and the error does not occur ... so, I guess, that's one way to work around the problem.