XML Parsar ( NSXml Parsar )
Xml Example :
Hi Friends !!! Here I am Trying My Best To explain how Use Xml In IOS. So,I think its may be very helpful to you, Because here I am Trying so simple & easy language and method so that everyone can understand it very quickly.
Here xml Example using the NSXml parser.. |
1) First Of Put Table View & Custom cell in Storyboard :
3) write This Coding in View Controller
Which is Given Below :
ViewController.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<NSXMLParserDelegate>
{
NSMutableData *conWebData;
NSXMLParser*xmlParser;
NSMutableDictionary *xmlDicts;
NSString *currentElement;
NSArray *arrobj;
NSArray *arrname;
}
@property(strong, nonatomic) IBOutlet UITableView *tblobj;
@end
ViewController.h:
#import "ViewController.h"
#import "myCell.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize tblobj;
- (void)viewDidLoad
{
[super viewDidLoad];
arrobj = [[NSArray alloc] init];
arrname = [[NSArray alloc] init];
// Do any additional setup after loading the view, typically from a nib.
[self xmlParse];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)xmlParse
{
NSString *strRequest = [NSString stringWithFormat:@"http://ec2-54-169-64-237.ap-southeast-1.compute.amazonaws.com/v2/player/player_230558.xml"];
NSURL *sRequestURL = [NSURL URLWithString:strRequest];
NSMutableURLRequest *myRequest = [NSMutableURLRequest requestWithURL:sRequestURL];
[myRequest setHTTPMethod:@"Get"];
[myRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:myRequest delegate:self];
if(theConnection)
{
conWebData = [NSMutableData data];
}
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[conWebData setLength: 0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[conWebData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"ERROR with theConenction");
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error Connection" message:@"Error With Conenction" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
[alert show];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *theXml = [[NSString alloc] initWithBytes:[conWebData mutableBytes] length:[conWebData length] encoding:NSUTF8StringEncoding];
NSLog(@"The final result :%@",theXml);
NSLog(@"%@",conWebData);
xmlParser = [[NSXMLParser alloc] initWithData:conWebData];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
// [SVProgressHUD dismiss];
}
-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*) namespaceURI qualifiedName:(NSString*)qName attributes:(NSDictionary*)attributeDict
{
if([elementName isEqualToString:@"pro"])
{
xmlDicts=[[NSMutableDictionary alloc]init];
}
// Here Condition in App Where Data is In Inner Block like
// <yweather:location city="Chanzac" region="" country="France"/>
// if([elementName isEqualToString:@"yweather:location"])
// Here Condition in App Where Data is In Inner Block like
// <yweather:location city="Chanzac" region="" country="France"/>
// if([elementName isEqualToString:@"yweather:location"])
// {
// NSString *strcity = [attributeDict objectForKey:@"city"];
//
// NSString *strcountry = [attributeDict objectForKey:@"country"];
//
// NSLog(@"%@",strcity);
// NSLog(@"%@",strcountry);
// }
}
-(void)parser:(NSXMLParser*)parser foundCharacters:(NSString*)string
{
currentElement=@"";
NSLog(@"%@",string);
currentElement=[NSString stringWithString:string];
}
-(void)parser:(NSXMLParser*)parser didEndElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName
{
if([elementName isEqualToString:@"pro"])
{
NSLog(@"%@",xmlDicts);
arrobj = [xmlDicts allValues];
arrname = [xmlDicts allKeys];
NSLog(@"%@",arrobj);
[tblobj reloadData];
}
else if([elementName isEqualToString:@"pId"])
{
[xmlDicts setObject:currentElement forKey:@"playerid"];
}
else if([elementName isEqualToString:@"nm"])
{
[xmlDicts setObject:currentElement forKey:@"playername"];
}
else if([elementName isEqualToString:@"dob"])
{
[xmlDicts setObject:currentElement forKey:@"dateofbirth"];
}
else if([elementName isEqualToString:@"tm"])
{
[xmlDicts setObject:currentElement forKey:@"team"];
}
else if([elementName isEqualToString:@"pSkl"])
{
[xmlDicts setObject:currentElement forKey:@"pSkl"];
}
else if([elementName isEqualToString:@"batStl"])
{
[xmlDicts setObject:currentElement forKey:@"batStl"];
}
else if([elementName isEqualToString:@"bowStl"])
{
[xmlDicts setObject:currentElement forKey:@"bowStl"];
}
else if([elementName isEqualToString:@"bowStl"])
{
[xmlDicts setObject:currentElement forKey:@"bowStl"];
}
else if([elementName isEqualToString:@"btStrRt"])
{
[xmlDicts setObject:currentElement forKey:@"btStrRt"];
}
else if([elementName isEqualToString:@"mtchs"])
{
[xmlDicts setObject:currentElement forKey:@"mtchs"];
}
else if([elementName isEqualToString:@"fifts"])
{
[xmlDicts setObject:currentElement forKey:@"fifts"];
}
else if([elementName isEqualToString:@"hunds"])
{
[xmlDicts setObject:currentElement forKey:@"hunds"];
}
else if([elementName isEqualToString:@"rns"])
{
[xmlDicts setObject:currentElement forKey:@"rns"];
}
else if([elementName isEqualToString:@"btAvg"])
{
[xmlDicts setObject:currentElement forKey:@"btAvg"];
}
else if([elementName isEqualToString:@"highScr"])
{
[xmlDicts setObject:currentElement forKey:@"highScr"];
}
else if([elementName isEqualToString:@"bwAvg"])
{
[xmlDicts setObject:currentElement forKey:@"bwAvg"];
}
else if([elementName isEqualToString:@"bstBowling"])
{
[xmlDicts setObject:currentElement forKey:@"bstBowling"];
}
else if([elementName isEqualToString:@"fiveWkHauls"])
{
[xmlDicts setObject:currentElement forKey:@"fiveWkHauls"];
}
else if([elementName isEqualToString:@"wkts"])
{
[xmlDicts setObject:currentElement forKey:@"wkts"];
}
else if([elementName isEqualToString:@"fourWkHauls"])
{
[xmlDicts setObject:currentElement forKey:@"fourWkHauls"];
}
else if([elementName isEqualToString:@"ecoRat"])
{
[xmlDicts setObject:currentElement forKey:@"ecoRat"];
}
else if([elementName isEqualToString:@"bwStrRt"])
{
[xmlDicts setObject:currentElement forKey:@"bwStrRt"];
}
else if([elementName isEqualToString:@"sts"])
{
[xmlDicts setObject:currentElement forKey:@"sts"];
}
else if([elementName isEqualToString:@"cts"])
{
[xmlDicts setObject:currentElement forKey:@"cts"];
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return arrobj.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
myCell *cell = [tblobj dequeueReusableCellWithIdentifier:@"cell"];
cell.txtname.text = [arrname objectAtIndex:indexPath.row];
cell.txtvalue.text = [arrobj objectAtIndex:indexPath.row];
return cell;
}
@end
Custom Cell (mycell) :
myCell.h :
#import <UIKit/UIKit.h>
@interface myCell : UITableViewCell
@property(strong,nonatomic) IBOutlet UILabel *txtname;
@property(strong,nonatomic) IBOutlet UILabel *txtvalue;
@end
myCell.m :
#import "myCell.h"
@implementation myCell
@synthesize txtname,txtvalue;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

No comments:
Post a Comment