XML is not popular because it's complex. Escaping is hard. XML bombs make it unusable in its raw form.
Fundamentally, XML doesn't give you data structures that look like the ones you use in your application logic. You have to transform your data into something that makes sense in XML, then transform it back. With JSON (and other formats) the data structures that you're given are present in almost every programming language. You don't need to model your data differently for transit or storage than you do in your application logic.
Average Joe Dev does not reach the impedance mismatch you mention correctly.