dusker
dusker

Reputation: 846

Reusing NSXMLParser

in a class i'm writing i'll most likely have to use NSXMLParser twice to parse two different xml's, and i'm wondering which approach should i use? - release the parser after it finished parsing url and reinitialize when need to parse the second url? - use different class as delegate for parsing other url? - or something else?

thanks peter

Upvotes: 0

Views: 553

Answers (3)

jessecurry
jessecurry

Reputation: 22116

In the past I've often made classes to parse each response type that I expected to see, you can reuse an NSXMLParser, but I really haven't seen a need to.

Depending on your requirements you may want to just read the responses into nested NSDictionaries, then deal with accessing the elements that you need directly from the dictionaries.

Upvotes: 0

Kieran
Kieran

Reputation: 33

I have written a class which implements the parser methods and you just have to pass it a string (your url). It returns with an array of elements. It may be of use to you.

You can download it here: http://www.kieranmcgrady.me/helper-classes-for-parsing-xml-files

Upvotes: 0

shawnwall
shawnwall

Reputation: 4607

In my own personal experience, I've commonly had to parse several different REST xml responses and for each of them I inherit a base class and create one class per request/response/parse. IMHO although this isn't clean code, I honestly find it impossible to write clean code when dealing with a SAX-style parser.

My advice would be separate calls and perhaps separate classes if you don't want a bunch of if-else's in your code. Now if the XML is very similar, it could be a different story...

Upvotes: 1

Related Questions