Jan 2011

A lightweight XML parser for iOS

Check out SMXMLDocument on Github.

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.

When we wrote our first iOS app, Style.com, we looked around for XML-parsing alternatives on iOS, and there are quite a few. But they all felt like…too much.

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.


  1. nicedexter reblogged this from nfarina
  2. ukar reblogged this from do-nothing
  3. do-nothing reblogged this from nfarina
  4. nfarina posted this