4

How do I parse xml attribute using GDataXMLDocument?

I have an xml string as NSData(named as xmlData )

<students>
 <student>
       <name>Raju</name>
       <age>25</age>      
 </student>
</students>

Then I read it:

 NSError *error;

 GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];
    if (doc == nil) { return ; }


    //NSArray *partyMembers = [doc.rootElement elementsForName:@"Player"];
    NSArray *partyMembers = [doc nodesForXPath:@"//students/student" error:nil];
    for (GDataXMLElement *partyMember in partyMembers) {

        // Let's fill these in!
        NSString *name;
        int age;


        // Name
        NSArray *names = [partyMember elementsForName:@"name"];
        if (names.count > 0) {
            GDataXMLElement *firstName = (GDataXMLElement *) [names objectAtIndex:0];
            name = firstName.stringValue;
   NSLog([NSString stringWithFormat:@"name is: %@",name]);
        } else continue;

        // Level
        NSArray *ages = [partyMember elementsForName:@"age"];
        if (ages.count > 0) {
            GDataXMLElement *firstLevel = (GDataXMLElement *) [ages objectAtIndex:0];
            age = firstLevel.stringValue.intValue;
   NSLog([NSString stringWithFormat:@"age  is: %d",age]);
        } else continue;

    }

    [doc release]; 

}

I get the name and age .

Now I have an xml(as NSData) with attributes.

<students>
 <student name="Raju" age = 25>       

 </student>
</students>

How do I read the age and name using GDataXMLDocument ?

Matt Fenwick
  • 48,199
  • 22
  • 128
  • 192
humblePilgrim
  • 1,818
  • 4
  • 25
  • 47

2 Answers2

5
NSString *name = [[partyMember attributeForName:@"name"] stringValue];
shawnwall
  • 4,549
  • 1
  • 27
  • 38
1
NSInteger type=[[(GDataXMLNode *)[[urls objectAtIndex:i] attributeForName:@"type"] stringValue] intValue];


NSInteger bit_stream=[[(GDataXMLNode *) [[urls objectAtIndex:i] attributeForName: @"bit_stream"] stringValue] intValue];
maheswaran
  • 417
  • 3
  • 11