> Computers adore XML. It's nice and easy to parse, so structured and precise. Computers love that shit.
It's not the easy to parse, without interpreting complex schemas that are sometimes missing. It's not even easy to map, you have the attributes, the children and inner text, this makes it a pain to map to native objects.
There may be good tools for this, but I wouldn't call parsing it easy especially compared to other formats out there.
The fact that you can't parse it with standard parsing tools doesn't seem like a win on the parseability front either. Not its biggest problem, but nothing in this use-case made it necessary to define a syntax that tools like lex/yacc can't parse. The core problem is that matching up start/end tags can't be done in a context-free language unless there are a finite number of tags (it's isomorphic to the problem of checking for palindromes). You'd need a parser-generator that lets you do backreferences (which makes it not context-free), so you could write a definition along the lines of:
element = '<' + element_name + '>' + element + '</' + $1 + '>'
| nil
Either that, or a hand-rolled parser, which is in practice what XML parsers are.
It's not the easy to parse, without interpreting complex schemas that are sometimes missing. It's not even easy to map, you have the attributes, the children and inner text, this makes it a pain to map to native objects.
There may be good tools for this, but I wouldn't call parsing it easy especially compared to other formats out there.