开发者

NSXML parser : problem in parsing xml data

开发者 https://www.devze.com 2023-01-27 19:48 出处:网络
I am working on an iPhone application where I am getting data from server using php webservice and need to show records in table view.

I am working on an iPhone application where I am getting data from server using php webservice and need to show records in table view. All was going well, but today i compiled code and run in simulator and found data is not parsing by parser while it is received from server as xml. I check the tag name in xml and parsing delegate methods.

here is the xml data and tag name.

<?xml version="1.0" encoding="UTF-8"?

ROOT>

ROW>

PostID>6BF718DD-E91B-4F8E-8EDB-520D66E02D60 /PostID>

PostDate>Dec 1 2010 10:31PM /PostDate>

Post>resume on mywebsite /Post>

FirstName>Testing /FirstName>

LastName>Team /LastName>

ProfileImage>http://mywebsite.com/upload_pic/thumbnail_%7B94808EC1-06DF-4AC2-B1C3-21DC5108695C%7D.jpg /ProfileImage>

Community>the park/Community>
NoOfComments>0 /NoOfComments>
/ROW
/ROOT 

static NSString *kXMLtagName_ROOT = @"ROOT";

static NSString *kXMLtagName_Row = @"ROW";

static NSString *kXMLtagName_PostID = @"PostID";

static NSString *kXMLtagName_PostDate = @"PostDate";

static NSString *kXMLtagName_Post = @"Post";

static NSString *kXMLtagName_FirstName = @"FirstName";

static NSString *kXMLtagName_LastName = @"LastName";

static NSString *kXMLtagName_ProfileImage = @"ProfileImage";

static NSString *kXMLtagName_Community = @"Community";

static NSString *kXMLtagName_NoOfComments = @"NoOfComments";


-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  
  
  if ([currentElement isEqualToString:kXMLtagName_PostID])
  {
   
   NSLog(@"postid = %@",string);
   if(string)
    //[dictCommunityInfo setObject:string forKey:@"PostID"];
    [arrMainPostInfo addObject:string];
   
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_PostDate])
  {
   
   NSLog(@"PostDate = %@",string);
   if(string)
    [arrMainPostInfo addObject:string];
   
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_Post])
  {
   
   NSLog(@"Posted data = %@",string);
   //if(string)
    [arrMainPostInfo addObject:string];
   
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_FirstName])
  {
   NSLog(@"fName=%@ ",string);
   if(string)
    [arrMainPostInfo addObject:string];
   
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_LastName])
  {
   
   NSLog(@"lName=%@ ",string);
   if(string)
    [arrMainPostInfo addObject:string];
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_ProfileImage])
  {
   
   NSLog(@"ProfileImageUrl=%@ ",string);
   if(string)
    [arrMainPostInfo addObject:string];
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_Community])
  {
   
   NSLog(@"Community=%@ ",string);
   if(string)
    [arrMainPostInfo addObject:string];
  }
  
   else if ([currentElement isEqualToString:kXMLtagName_CommentID])
 {
  
  NSLog(@"CommentID = %@",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentID"];
  
 }
 
 else if ([currentElement isEqualToString:kXMLtagName_CommentPostDate])
 {
  
  NSLog(@"CommentPostDate = %@",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentPostDate"];
  
 }
 
 else if ([currentElement isEqualToString:kXMLtagName_CommentPost])
 {
  
  NSLog(@"CommentPost data = %@",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentPost"];
  
 }
 
 else if ([currentElement isEqualToString:kXMLtagName_CommentFirstName])
 {
  NSLog(@"CommentFirstName=%@ ",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentFirstName"];
  
 }
 
 else if ([currentElement isEqualToString:kXMLtagName_CommentLastName])
 {
  
  NSLog(@"CommentLastName=%@ ",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentLastName"];
 }
 
 else if ([currentElement isEqualToString:kXMLtagName_ComentProfileImage])
 {
  
  NSLog(@"CommentProfileImage=%@ ",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentProfileImage"];
 }
 
 else if ([currentElement isEqualToString:kXMLtagName_UserCommunity])
 {
  
  NSLog(@"CommentCommunity=%@ ",string);
  if(string)
   [dictComentsInfo setObject:string forKey:@"CommentCommunity"];
 }
 
}

parser is checking only following three tag and leave other all tags

if ([currentElement isEqualToString:kXMLtagName_PostID])
  {
   
   NSLog(@"postid = %@",string);
   if(string)
    //[dictCommunityInfo setObject:string forKey:@"PostID"];
    [arrMainPostInfo addObject:string];
   
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_PostDate])
  {
   
   NSLog(@"PostDate = %@",string);
   if(string)
    [arrMainPostInfo addObject:string];
   
  }
  
  else if ([currentElement isEqualToString:kXMLtagName_Post])
  {
   
   NSLog(@"Posted data = %@",string);
   //if(string)
    [arrMainPostInfo addObject:string];
  开发者_JS百科 
  }

Any Idea about this, I am using xcode 3.2.1 even I check on device 3gs same in that. I am socked that all the code was going fine before today I re check the web-service and xml tag name.


I got solution. Actually a special character was found in () thats why xml parser was unable to parse that, ignores the other tag.

I change that character and everything get working.

Thanks

0

精彩评论

暂无评论...
验证码 换一张
取 消