0

I want to parse the below xml in iOS.. How can i do this..

<RESULTS>
    <ROW>
        <COLUMN NAME="NAME">TEST1</COLUMN>
        <COLUMN NAME="PHONE">4642664</COLUMN>
        <COLUMN NAME="REMARKS"></COLUMN>
        <COLUMN NAME="XCOORD_DMS">238558.000038</COLUMN>
        <COLUMN NAME="YCOORD_DMS">381414.999953</COLUMN>
        <COLUMN NAME="XCOORD_WGS">51.59917692</COLUMN>
        <COLUMN NAME="YCOORD_WGS">25.18448963</COLUMN>
    </ROW>
    <ROW>
        <COLUMN NAME="NAME">TEST2</COLUMN>
        <COLUMN NAME="PHONE">4441303</COLUMN>
        <COLUMN NAME="REMARKS">تسجيل - ترخيص</COLUMN>
        <COLUMN NAME="XCOORD_DMS">231930.999982</COLUMN>
        <COLUMN NAME="YCOORD_DMS">392650.000114</COLUMN>
        <COLUMN NAME="XCOORD_WGS">51.53369833</COLUMN>
        <COLUMN NAME="YCOORD_WGS">25.28606306</COLUMN>
    </ROW>
</RESULTS>

Thanks

Pras
  • 243
  • 1
  • 13
  • As you've guessed, you can use `NSXMLParser`. What part are you having trouble with? – user1118321 Jul 30 '12 at 18:05
  • Where is the `NSXMLParser` code that you have tried? Are you having unicode issues with `تسجيل - ترخيص`? Otherwise I will vote to close the question. – Joe Jul 30 '12 at 18:10
  • NO prob with unicode issues.. I am facing problem in getting the data inside the COLUMN tag. For exmple i need to take the phone number inside the 4441303.. i m using SMXMLDocument.. in which they have used NSXMLPArser – Pras Jul 30 '12 at 18:23
  • Pras did u get the solution for this?.I am facing the same problem – ichanduu Jan 16 '13 at 12:56

1 Answers1

0

Below is the parser i wrote..

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict {

    if([elementName isEqualToString:@"RESULTS"]) {
        //Initialize the array.
        //appDelegate.maps = [[NSMutableArray alloc] init];
    }
    else if([elementName isEqualToString:@"COLUMN"]) {

        //Initialize the book.
        amaps = [[MapDetails alloc] init];

        dict = [[NSDictionary alloc] initWithDictionary:attributeDict];
        if ([[attributeDict objectForKey:@"NAME"] isEqualToString:@"NAME"]) {
        }

    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{

    str123=[NSString stringWithFormat:@"%@",string];

}
// this delegate method is called if an error occurs in locating your current location
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {

    NSLog(@"STEP 3: Failed!!! Finding location : %@ ", error);
    if ( kCLErrorDenied) {
    } else {
        // We handle all non-CoreLocation errors here
    }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

    if([elementName isEqualToString:@"RESULTS"])
        return;
    if([elementName isEqualToString:@"COLUMN"]) 
    {

        amaps.NAME = [NSString stringWithString:str123];

        NSLog(@"%@",amaps.NAME);
        if ([[dict objectForKey:@"NAME"] isEqualToString:@"NAME"]) {

            [arrName addObject:[NSString stringWithFormat:@"%@",amaps.NAME]];

            NSLog(@"arr %@",arrName);

        }
        if ([[dict objectForKey:@"NAME"] isEqualToString:@"ANAME"]) {

            [arrArabName addObject:[NSString stringWithFormat:@"%@",amaps.NAME]];

            NSLog(@"arr %@",arrArabName);

        }
        if ([[dict objectForKey:@"NAME"] isEqualToString:@"YCOORD_WGS"]) {
            [arrLatitude addObject:[NSString stringWithFormat:@"%@",amaps.NAME]];
            NSLog(@"arr %@",arrLatitude);
        }
        if ([[dict objectForKey:@"NAME"] isEqualToString:@"XCOORD_WGS"]) {
            [arrLongitude addObject:[NSString stringWithFormat:@"%@",amaps.NAME]];
            NSLog(@"arr %@",arrLongitude);
        }


    }

}

Pras
  • 243
  • 1
  • 13