A lightweight XML parser for iOS
If you’ve ever tried to parse XML on the iPhone or iPad using
NSXMLParser, you may have wondered if you’re taking crazy pills.
Is this really how people parse XML on iOS? Really?
I mean, yes, it’s true that using
NSXMLParser forces you to write extremely efficient stream-based parsing without buffering the entire XML structure in memory.
But it also forces you, the savvy developer who already hates XML, to hate it even more as you write tons of conditional code and temporary classes so you can manually keep track of state.
What we really wanted was just the simplest possible class that would use
NSXMLParser itself to build up an easily-traversable Cocoa object hierarchy.
So we made one. It’s a single class, with like one page of code.
And we find it very pleasant to use:
We’ve used this class to parse XML on iOS for years now, and we’ve never had any problems. You may want to fallback to
NSXMLParser if you have to deal with a multi-megabyte XML document though.