Advertisement
Guest User

Untitled

a guest
Jul 7th, 2013
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. //
  2. // XMLParser.m
  3. // ParsingXMLTutorial
  4. //
  5. // Created by kent franks on 3/3/12.
  6. // Copyright (c) 2012 __MyCompanyName__. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10. #import "XMLParser.h"
  11.  
  12. @implementation XMLParser
  13. @synthesize feeds;
  14.  
  15.  
  16. NSMutableString *currentNodeContent;
  17. NSXMLParser *parser;
  18. ChanelFeeds *currentFeed;
  19.  
  20. -(id) loadXMLByURL:(NSString *)urlString
  21. {
  22. feeds = [[NSMutableArray alloc] init];
  23. NSURL *url = [NSURL URLWithString:urlString];
  24. NSData *data = [[NSData alloc] initWithContentsOfURL:url];
  25. parser = [[NSXMLParser alloc] initWithData:data];
  26. parser.delegate = self;
  27. [parser parse];
  28. return self;
  29. }
  30.  
  31. - (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
  32. {
  33. currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
  34. }
  35.  
  36. - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
  37. {
  38. if ([elementname isEqualToString:@"entry"])
  39. {
  40. currentFeed = [ChanelFeeds alloc];
  41. }
  42. if ([elementname isEqualToString:@"yt:duration"])
  43. {
  44. currentFeed.duration = [attributeDict objectForKey:@"seconds"];
  45. }
  46.  
  47. if ([elementname isEqualToString:@"yt:statistics"])
  48. {
  49. currentFeed.views = [attributeDict objectForKey:@"viewCount"];
  50. }
  51. if ([elementname isEqualToString:@"gd:rating"])
  52. {
  53. currentFeed.rating = [attributeDict objectForKey:@"average"];
  54. }
  55. if ([elementname isEqualToString:@"media:player"])
  56. {
  57. currentFeed.streamURL = [NSURL URLWithString:[attributeDict objectForKey:@"url"]];
  58. }
  59. if ([elementname isEqualToString:@"media:thumbnail"] && !currentFeed.thumbnailURL)
  60. {
  61. currentFeed.thumbnailURL = [NSURL URLWithString:[attributeDict objectForKey:@"url"]];
  62. }
  63.  
  64.  
  65. }
  66.  
  67. - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
  68. {
  69. if ([elementname isEqualToString:@"title"])
  70. {
  71. currentFeed.title = currentNodeContent;
  72. }
  73. if ([elementname isEqualToString:@"content"])
  74. {
  75. currentFeed.description = currentNodeContent;
  76. }
  77.  
  78. if ([elementname isEqualToString:@"entry"])
  79. {
  80. [self.feeds addObject:currentFeed];
  81. currentFeed = nil;
  82. currentNodeContent = nil;
  83. }
  84. }
  85.  
  86. @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement