2011-09-08 56 views
4

如何使用GDataXMLDocument解析xml属性?使用GDataXMLDocument解析xml属性

我有一个XML字符串作为NSData的(命名为XMLDATA)

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

然后我读它:

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]; 

} 

我得到的年龄。

现在我有一个XML(作为NSData)的属性。

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

</student> 
</students> 

如何使用GDataXMLDocument读取年龄和名称?

回答

5
NSString *name = [[partyMember attributeForName:@"name"] stringValue]; 
1
NSInteger type=[[(GDataXMLNode *)[[urls objectAtIndex:i] attributeForName:@"type"] stringValue] intValue]; 


NSInteger bit_stream=[[(GDataXMLNode *) [[urls objectAtIndex:i] attributeForName: @"bit_stream"] stringValue] intValue];