Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // XMLParser.m
- // ParsingXMLTutorial
- //
- // Created by kent franks on 3/3/12.
- // Copyright (c) 2012 __MyCompanyName__. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "XMLParser.h"
- @implementation XMLParser
- @synthesize feeds;
- NSMutableString *currentNodeContent;
- NSXMLParser *parser;
- ChanelFeeds *currentFeed;
- -(id) loadXMLByURL:(NSString *)urlString
- {
- feeds = [[NSMutableArray alloc] init];
- NSURL *url = [NSURL URLWithString:urlString];
- NSData *data = [[NSData alloc] initWithContentsOfURL:url];
- parser = [[NSXMLParser alloc] initWithData:data];
- parser.delegate = self;
- [parser parse];
- return self;
- }
- - (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
- {
- currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
- }
- - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
- {
- if ([elementname isEqualToString:@"entry"])
- {
- currentFeed = [ChanelFeeds alloc];
- }
- if ([elementname isEqualToString:@"yt:duration"])
- {
- currentFeed.duration = [attributeDict objectForKey:@"seconds"];
- }
- if ([elementname isEqualToString:@"yt:statistics"])
- {
- currentFeed.views = [attributeDict objectForKey:@"viewCount"];
- }
- if ([elementname isEqualToString:@"gd:rating"])
- {
- currentFeed.rating = [attributeDict objectForKey:@"average"];
- }
- if ([elementname isEqualToString:@"media:player"])
- {
- currentFeed.streamURL = [NSURL URLWithString:[attributeDict objectForKey:@"url"]];
- }
- if ([elementname isEqualToString:@"media:thumbnail"] && !currentFeed.thumbnailURL)
- {
- currentFeed.thumbnailURL = [NSURL URLWithString:[attributeDict objectForKey:@"url"]];
- }
- }
- - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
- {
- if ([elementname isEqualToString:@"title"])
- {
- currentFeed.title = currentNodeContent;
- }
- if ([elementname isEqualToString:@"content"])
- {
- currentFeed.description = currentNodeContent;
- }
- if ([elementname isEqualToString:@"entry"])
- {
- [self.feeds addObject:currentFeed];
- currentFeed = nil;
- currentNodeContent = nil;
- }
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement