NSXMLParser的例子

 

  [pre]<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user name=
"hoge" age="20" />
    <user name=
"fuga" age="30" />
</users>
[/pre][pre]代码如下:[/pre][pre]
[pre]static NSString *feedURLString = @"http://www.yifeiyang.net/test/test.xml";
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
    // 解析开始时的处理
}

- (void)parseXMLFileAtURL:(NSURL *)URL parseError:(NSError **)error
{
    NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];
    [parser setDelegate:self];
    [parser setShouldProcessNamespaces:NO];
    [parser setShouldReportNamespacePrefixes:NO];
    [parser setShouldResolveExternalEntities:NO];
    [parser parse];
    NSError *parseError = [parser parserError];
    if (parseError && error) {
        *error = parseError;
    }
    [parser release];
}[/pre][pre]- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:[/pre][pre](NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
   // 元素开始句柄
    if (qName) {
        elementName = qName;
    }
    if ([elementName isEqualToString:@"user"]) {
        // 输出属性值
        NSLog(@"Name is %@ , Age is %@", [attributeDict objectForKey:@"name"], [attributeDict objectForKey:@"age"]);
    }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:[/pre][pre](NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    // 元素终了句柄
    if (qName) {
        elementName = qName;
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    // 取得元素的text
}

NSError *parseError = nil;
[self parseXMLFileAtURL:[NSURL URLWithString:feedURLString] parseError:&parseError];[/pre]
 


[/pre]
 


posted @ 2015-12-28 14:39  Bo-tree  阅读(65)  评论(0)    收藏  举报