title: How to load Soap response on table view in iphone
body: <p>I am working with handling soap request and response.. and I m able to make the server request and also I am getting the server response,which i parsed on uialertview Message,<strong>But when I am trying to load it on a tabelview,I am not able to fill the array with strings,So please help me out</strong></p>
  
  <p>Below is my code</p>
  
  <pre><code>#import "SoapTableViewController.h"
  
  
  @implementation SoapTableViewController
  
  @synthesize customerArray;
  @synthesize webData;
  @synthesize dict;
  
  - (id)initWithStyle:(UITableViewStyle)style
  {
      self = [super initWithStyle:style];
      if (self) {
          // Custom initialization
      }
      return self;
  }
  
  
  -(void) GetCustomers
  {
      NSString *soapMessage =@"&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n"
      "&lt;soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&gt;\n"
      "&lt;soap:Body&gt;\n"
      "&lt;GetCustomers xmlns=\"http://www.fashionize.ca/\" /&gt;\n"
      "&lt;/soap:Body&gt;\n"
      "&lt;/soap:Envelope&gt;\n";       
  
      NSURL *url = [NSURL URLWithString:@"http://www.fashionize.ca/Service1.asmx"];
      NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
      NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
  
      [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
      [theRequest addValue: @"http://www.fashionize.ca/GetCustomers" forHTTPHeaderField:@"SOAPAction"];
      [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
      [theRequest setHTTPMethod:@"POST"];
      [theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
  
      NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
  
      if( theConnection )
      {
          webData = [[NSMutableData data] retain];
      }
      else
      {
          NSLog(@"theConnection is NULL");
      }
  }
  
  
  
  -(void) connection:(NSURLConnection *) connection didReceiveResponse:(NSURLResponse *) response 
  {
      webData =[[NSMutableData data]retain];
      [webData setLength: 0];
  }
  
  
  -(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data
  {
      [webData appendData:data];
  }
  
  -(void) connection:(NSURLConnection *) connection didFailWithError:(NSError *) error
  {
      NSLog(@"Error With Connection");
      [webData release];
      [connection release];
  }
  
  -(void) connectionDidFinishLoading:(NSURLConnection *) connection {
      NSLog(@"DONE. Received Bytes: %d", [webData length]);
      NSString *theXML = [[NSString alloc] 
                          initWithBytes: [webData mutableBytes] 
                          length:[webData length] 
                          encoding:NSUTF8StringEncoding];
      //---shows the XML---
      NSLog(theXML);
     // [self parseXml:theXML];
      [theXML release];  
  
  
         if (xmlParser)
          {
              [xmlParser release];
          }    
          xmlParser = [[NSXMLParser alloc] initWithData: webData];
          [xmlParser setDelegate: self];
          [xmlParser setShouldResolveExternalEntities:YES];
          [xmlParser parse];
  
      [connection release];
      [webData release];
  }
  
  -(void) parser:(NSXMLParser *) parser 
  didStartElement:(NSString *) elementName 
    namespaceURI:(NSString *) namespaceURI 
   qualifiedName:(NSString *) qName
      attributes:(NSDictionary *) attributeDict {
  
      if( [elementName isEqualToString:@"Name"])
      {
          if (!soapResults)
          {
              soapResults = [[NSMutableString alloc] init];
                       }
          elementFound = YES;
      }
  }
  
  -(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string
  {
      if (elementFound)
      {
          [soapResults appendString: string];
  
          [customerArray addObject:soapResults];
  
      }
  }
  
  -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI 
  qualifiedName:(NSString *)qName
  {
      if ([elementName isEqualToString:@"Name"])
      {
  
          //---displays the country---
                  [customerArray addObject:soapResults];
          NSLog(soapResults);        
          elementFound = FALSE;
          UIAlertView *alert = [[UIAlertView alloc] 
                                initWithTitle:@"Customer Name!" 
  
  
                                message:soapResults 
                                delegate:self  
                                cancelButtonTitle:@"OK" 
                                otherButtonTitles:nil];
          [alert show];
          [alert release];
          [soapResults setString:@""];
          elementFound = FALSE; 
  
  
          //[customerArray addObject:soapResults];
  
  
      }
  }
  
  - (void)dealloc
  {
      [webData release];
      [customerArray release];
      [super dealloc];
  }
  
  - (void)didReceiveMemoryWarning
  {
      // Releases the view if it doesn't have a superview.
      [super didReceiveMemoryWarning];
  
      // Release any cached data, images, etc that aren't in use.
  }
  
  #pragma mark - View lifecycle
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      [self GetCustomers];
      // Uncomment the following line to preserve selection between presentations.
      // self.clearsSelectionOnViewWillAppear = NO;
  
      // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
      // self.navigationItem.rightBarButtonItem = self.editButtonItem;
  }
  
  - (void)viewDidUnload
  {
      [super viewDidUnload];
      // Release any retained subviews of the main view.
      // e.g. self.myOutlet = nil;
  }
  
  - (void)viewWillAppear:(BOOL)animated
  {
      [super viewWillAppear:animated];
  }
  
  - (void)viewDidAppear:(BOOL)animated
  {
      [super viewDidAppear:animated];
  }
  
  - (void)viewWillDisappear:(BOOL)animated
  {
      [super viewWillDisappear:animated];
  }
  
  - (void)viewDidDisappear:(BOOL)animated
  {
      [super viewDidDisappear:animated];
  }
  
  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
  {
      // Return YES for supported orientations
      return (interfaceOrientation == UIInterfaceOrientationPortrait);
  }
  
  #pragma mark - Table view data source
  
  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
  #warning Potentially incomplete method implementation.
      // Return the number of sections.
      return 1;
  }
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  {
  #warning Incomplete method implementation.
      // Return the number of rows in the section.
      return [customerArray count];
  }
  
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      static NSString *CellIdentifier = @"Cell";
  
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      if (cell == nil) {
          cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
      }
      NSUInteger row = [indexPath row];
      cell.textLabel.text =[customerArray objectAtIndex:row];
      // Configure the cell...
  
      return cell;
  }
  </code></pre>
  
  <p>here u can see my customer array is empty..so friends and geeks please tell me where i am going wrong..</p>
  
  <p>Thanks and Regards
  Ranjit</p>