Obviously, line-oriented tools, such as grep and diff, are mismatched to XML. A proper XML toolset operates on the data structures, not on the raw text.
The "one difference, one line" feature is nice... but it doesn't include any context, i.e. where in the data structure the different element is; you'd have to do something else to reveal that (e.g. load it in an editor). An XML diff'ing tool can report such context, because it knows it.
Don't misunderstand me — I'm not defending XML. I know it has its problems. But — unlike yaml — being gratuitously different isn't one of them.