I'm just going to disagree with this. If you're saving a large state, having it human readable truly gains you nothing except massive bloat. Writing as binary should really be the way to go for a game. If you're making an engine, or a level editor, sure, use a standardized method to save the files, but not for internal game loading/saving. It's going to be much easier reading and writing binary data.
Personally, I would use xml for setting up characters, weapons, controller configurations, but NOT for internal states.
My bad. When I read the OP I somehow assumed that he was just talking about a config file (he did mention that, but also save games).
Agree that for save games, large state, etc. human readable is probably not what you want.