Aaron of Montreal considers JSON:
I still don’t like JSON. It works and working code always win but its arrival as the next Best Thing Evar on the Intarweb only confirms that it’s a hack.
And like me, would like to see XPath in the browser.
“Coincidentally, I tend to think of XPath the same way its benefactors think of Perl: It makes easy things easy and hard things possible. XPath can be very complex if you are dealing with a complicated document (or fantastically stupid formats like Apple’s plist) but 90% of the time it’s really nothing more than specifying a simple set of parent-child relationships.”
There’s E4X, but it’s only in Firefox at the moment, and allows you to do JSON-like things with XML, but it doesn’t support XPath.
From the comments, I’m reminded that there is DOM3 support in Mozilla, so you can access things via XPath.

6 Comments
As you’ve noted before, it’s in Mozilla already and in DOM Level 3:
http://www.whump.com/moreLikeThis/link/04302
Yeah, that apple plist format. What were they smoking? “We can *call* it XML because it has angle-brackets!” Eeek.
@ Jason: You’re right, I’d managed to forget that.
@ Randal: I don’t know why plists ended up that way. I’m guessing it was an ‘premature’ optimization. I’ll have to ask friends who might know the history behind it.
There is a Wikipedia entry for plist, that shows how the original plist format, used in NeXTStep and GNUStep, was even worse.
The XML plist is essentially a serialized CF/NSDictionary. The dictionary is just a bag of key-value pairs, where the value can be any CF/NS type, including another dictionary. This makes it very easy to manage preferences, but the simplistic data structure gives you equally simplistic XML.
For truly horrifying XML, look inside an Xcode .pbxproj file, or an IB Carbon NIB file.
I know a little of the history of the plist format. My information, however, should not be considered authoritative, having been gained either fourth-hand or by inference.
The original NeXTStep/OpenStep/GNUStep format, as far as I know, predates XML by several years, perhaps as much as a decade before XML 1.0 (i.e., 1988). Heck, maybe more, for all I know.
I think the XML format for plists dates from the early days of widespread XML adoption (1999/2000), and I suspect the idea was to move to something XML-compliant, but that that was perhaps the only motivation. This is really just a guess on my part, but it tracks with what I’ve observed. In other words, I think TomB’s observation that it’s just a plist serialized in a nominal XML form is right-on.
I don’t know anything about the binary format.
I personally consider the OpenStep format (sometimes called “ASCII plists” as contrasted with “XML plists”) to be preferable to the XML format because it is (1) more compact, and (2) more readable. Arguably the key word in both those points is “more”, since everything is relative.