NSXML分析器在iphone

问题描述:

我需要得到下面的XML的价值,我使用的解析器NSXML解析这个NSXML分析器在iphone

<boolean xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</boolean> 

我需要从上面的XML“真实”价值。

我应该在NSXML解析器委托方法内部做些什么?

+0

请在提问前做一些检索。 :) – Nayan 2012-10-19 06:23:10

#import "XMLParser.h" 

@implementation XMLParser 

- (NSString *)parseXMLFile: (NSURL *) url 
{ 
    outstring = [[NSMutableString alloc] init]; 

     NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL: url]; 

     [parser setDelegate: self]; 
    [parser parse]; 
     [parser release]; 

    return [outstring autorelease]; 
} 

//<boolean xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</boolean> 

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
               namespaceURI:(NSString *)namespaceURI 
          qualifiedName:(NSString *)qName 
          attributes:(NSDictionary *)attributeDict 
{ 
     if (qName) elementName = qName; 
    if (elementName) current = [NSString stringWithString:elementName]; 
} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
         namespaceURI:(NSString *)namespaceURI 
         qualifiedName:(NSString *)qName 
{ 
    current = nil; 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    if (!current) return; 
    if ([current isEqualToString:@"boolean"]) 
     [outstring appendFormat:@"%@\n", string]; 
} 

// <boolean xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</boolean> 


-(void) parserDidStartDocument:(NSXMLParser *)parser { 
    NSLog(@"parserDidStartDocument"); 
} 

-(void) parserDidEndDocument: (NSXMLParser *)parser { 
    NSLog(@"parserDidEndDocument %@", outstring); 
} 
@end 

For more detail regarding the nsxml parse Reference site here.

这可能更多的帮助到你。

,如果你想真正的价值然后执行以下操作:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
    { 
     strVal=string; 
    } 

    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
    { 
     if([elementName isEqualToString:@"boolean"]) 
     { 
      //you can get 'true' value here 
     } 

    }