Parsing An XML File

XML

This is the “XMLParsing” example. In this app we will read data from xml file and display the data on the screen.

Step 1: Open the Xcode and create a new Xcode project using Navigation base application template. Give the application name “XML”. As shown in the figure below:

Step 2: Expand classes and notice Interface Builder created the RootViewController.h and RootViewController.m class for you. Expand Resources and notice the template generated a separate nib, RootViewController.xib.

Step 3: We need to add another file. Right-click on the Classes folder and choose Add -> New File. Under Cocoa Touch Class category choose Objective-C class. Name it Book.h and Book.m file.
This will be a very simple class that will take our dummy data file, read it in as an NSArray and provide some utility methods to access the data from the file.

 

 

Step 4: We need to add Book.m file.

 

 

Step 5: We need to add another file. Right-click on the Resource folder and choose Add -> New File. Under Resource category choose View-XIB class. Name it BookDetailView.xib file. Double click the file and select Grouped table view.

Step 6: We need to add another file. Right-click on the Classes folder and choose Add -> New File. Under Cocoa Touch Class category choose Objective-C class. Name it XMLParser.h and XMLParser.m file. This will be a very simple class that will take our dummy data file, read it in as an NSArray and provide some utility methods to access the data from the file.

 

 

Step 7: We need to open XMLParser.m file.

 

 

Step 8: We need to add another file. Right-click on the Classes folder and choose Add -> New File. Under Cocoa Touch Class category choose UIViewController class. Name it BookDetailViewController.h and BookDetailViewController.m file.

 

 

Step 9: We need to open BookDetailViewController.m file.

 

 

Step 10: We need to open XmlAppDelegate.h file.

 

 

Step 11: We need to open XmlAppDelegate.m file.

 

 

Step 12: Now build and run the code and view the Output in the Simulator.

You can download source code from here XML

Comments 27

  1. Thanks you for putting this together.

    I followed the tutorial closely and the following lines were the only ones missing (in BookDetailViewController.m) that weren’t mentioned explicitly and prevented me from building the code:
    #import “Book.h”
    @synthesize aBook;

    … After I downloaded your source, I was able to peek inside and resolve this. But the build didn’t show the expected visual output. It seems the older auto project generated root view controller was still hooked up to the window. I didn’t have the motivation to dig deeper into the source as I’m a beginner but it would be fantastic if you could actively talk about how to clean up the auto-generated views and wire up the one in your tutorial to an actual window :)

  2. Hi

    Great tutorial but i just had one question, i would like to show an image either in the current detail view or in a new detail view possibly accessed by a button at the bottom of the current view any help would be much appreciated.

    If you think that the button at the bottom is the best idea i would like the url for the image loaded into the button from the xml data on the internet.

    As i said i would really appreciate the help as i am still a beginner and would like to be able to complete this app.

    Thanks
    Brad

  3. I changed the link in the app delegate .m file to my own XML file on the internet and now the app builds but crashes with the error “terminate called after throwing an instance of ‘NSException’ ” I’ve also tried changing the link to a different XML file on the same site with identical results. (http://chakrainteractive.com/mob/0-vin/Books.xml)

    Any idea what is going on?

  4. @interface XMLParser : NSObject

    {
    }
    @end

    need little bit Change…Not ..Neccesary.
    Here You will Found How To use Delegate…
    Or A Class As Delegate…Make Differance…

    thanks …

  5. hi guys

    thanks for the info about the image and simpleURL, i have another problem now i want to apply a search facility to the table but the problem i have is that all the code on the internet is showing that you need to make a copy of the array before you start searching but i am not sure how this will be accomplished importing the array from another class.

    PLEASE HELP!!

    Thanks
    Brad

  6. sushant bhai its showing me a error like “pattern colors on iOS versions prior to 3.0, as well the build is failed… what to do?

    thanks in advance

  7. How do you do all of this in Tab Bar Application which has two view controllers; one with this (parsing an XML file) and another one with only a UIViewController. I know how to do the 2nd controller, but I cannot figure out how to do the first one.

    Because in the UINavigation App, you parsed the XML file from the delegate itself. Is it the same with UITabBar App?

    Thanks a million!

    Micha

  8. I was able to run your code – thanks!

    My only problem is when I added a new View (this is my login) before the RootViewController – when I click the button it shows the Main table view but when I click the data on each row it didn\’t show the details view like nothing happened. Any idea what I did wrong? Details View works flawlessly without the login View

  9. i downloaded the code and works perfect, but if i putmy file XML in xcode how i can parse it, this is for a url for internet but i have a local file, can you help me?

Leave a Reply

Your email address will not be published. Required fields are marked *