XML doesn't have the problems in theory, but in practice it can be just as bad.
As a mildly egregious example, I had a company which wanted a data feed from us in XML format. I wrote a query to produce the relevant data out of MSSQL and sent it to them. They wrote back that I had to have a header line:
<?xml version="1.0" encoding="UTF-8">
MSSQL writes SQL in UCS-2 format; I therefore sent them back a feed with the encoding declared as such, and they rejected it. They were fine with the encoding
being UCS-2, but they were absolutely insistent I had to declare it as UTF-8 or they wouldn't accept it. After a lot of back-and-forth and quoting of standards at them, I finally gave up and wrote a little script to change the declared encoding so they would accept it.
It's this sort of thing that makes me understand why Ode to a Shipping Label[1] exists.
[1]: http://imgur.com/4J7Il0m