Я разрабатываю программу для чтения RSS, и все работает нормально, за исключением случаев, когда в содержимом элемента, который я получаю, есть такой символ, как ('). Я думаю, мне следует использовать какую-то строковую функцию, которая заменяет или каким-то образом изменяет escape-символы...
например, если в xml у меня есть:
<desciption>this is John's newspaper</description>
Я получаю не "это газета Джона", а "газета его"
вот мой код:
-(id) loadXMLByURL:(NSString *)urlString
{
rssFeeds = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
xmlParser = [[NSXMLParser alloc] initWithData:data];
[xmlParser setDelegate:self];
[xmlParser parse];
return self;
}
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementname isEqualToString:@"item"])
{
currentFeed = [rssReader alloc];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementname isEqualToString:@"title"])
{
currentFeed.rssTitle = str1;
}
if ([elementname isEqualToString:@"description"])
{
currentFeed.rssDescription = currentNodeContent;
}
if ([elementname isEqualToString:@"pubDate"])
{
currentFeed.rsspubDate = currentNodeContent;
}
if ([elementname isEqualToString:@"item"])
{
[rssFeeds addObject:currentFeed];
currentFeed = nil;
currentNodeContent = nil;
}
}
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[xmlParser rssFeeds] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
INrssCell *cell = (INrssCell *)[tableView dequeueReusableCellWithIdentifier:@"ingrCell"];
rssReader *currectFeed = [xmlParser.rssFeeds objectAtIndex:indexPath.row];
cell.titleLbl.text = currectFeed.rssTitle;
cell.dateLbl.text = currectFeed.rsspubDate;
cell.descLbl.text = currectFeed.rssDescription;
return cell;
}
Спасибо заранее.