Reputation: 2514
I am Parsing Web urls from server and storing them in Strings and then displaying it on Webview. But now when i am parsing Spanish words like
http://litofinter.es.milfoil.arvixe.com/litofinter/PDF/Presentación_LITOFINTER_(ES).pdf
it is accepting it
PDF File Name ++++++ http://litofinter.es.milfoil.arvixe.com/litofinter/PDF/Presentaci
PDF File Name ++++++ ón_LITOFINTER_(ES).pdf
i.e two different strings... i know i have to make small change that is append the string but i am not able to do it now, can anyone help me out. Here is my code :-
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
currentElement = elementName;
if([currentElement isEqualToString:@"category"]) {
NSLog(@"Current element in Category:- %@",currentElement);
obj = [[Litofinter alloc]init];
obj.productsArray = [[NSMutableArray alloc]init];
}
if([currentElement isEqualToString:@"Product"]) {
obj.oneObj = [[Products alloc]init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if([currentElement isEqualToString:@"Logo"]) {
obj.cLogo=[NSString stringWithFormat:@"%@",string];
NSLog(@"Logo to be saved in Array :- %@",obj.cLogo);
}
if([currentElement isEqualToString:@"Name"]) {
obj.cName=[NSString stringWithFormat:@"%@",string];
NSLog(@"Name to be saved in Array :- %@",string);
}
if([currentElement isEqualToString:@"cid"]) {
obj.cId=(int)[NSString stringWithFormat:@"%@",string];
NSLog(@"CID to be saved in Array :- %@",string);
}
if([currentElement isEqualToString:@"pid"]) {
//obj.oneObj.id = (int)[NSString stringWithFormat:@"%@",oneBook.id];
obj.oneObj.id = (int)[oneBook.id intValue];
}
if([currentElement isEqualToString:@"Title"]) {
obj.oneObj.title = [NSString stringWithFormat:@"%@",string];
}
if([currentElement isEqualToString:@"Thumbnail"]) {
obj.oneObj.thumbnail= [NSString stringWithFormat:@"%@",string];
}
// problem occuriing while parsing Spanish characters...
if([currentElement isEqualToString:@"pdf"]) {
obj.oneObj.pdf = [NSString stringWithFormat:@"%@",string];
NSLog(@"PDF File Name ++++++ %@",string);
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([elementName isEqualToString:@"category"]) {
NSLog(@"Current element in End Element Category:- %@",currentElement);
[TableMutableArray addObject:obj];
}
if([elementName isEqualToString:@"Product"]) {
[obj.productsArray addObject:obj.oneObj];
}
currentElement = @"";
}
I will be thankful to you.
Upvotes: 1
Views: 358
Reputation: 2514
I found the answer :
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
currentElement = elementName;
// MOdified
else if([currentElement isEqualToString:@"pdf"]) {
// obj.oneObj.pdf = [NSString stringWithFormat:@"%@",string];
// NSLog(@"PDF File Name ++++++ %@",string);
NSMutableString *outputBuilder = [[NSMutableString alloc]init] ;
[outputBuilder appendString:[NSString stringWithFormat:@"%@", self.pdfString]];
[outputBuilder appendString:[NSString stringWithFormat:@"%@", string]];
self.pdfString = outputBuilder;
[outputBuilder release];
}
else
{
self.pdfString = string;
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([currentElement isEqualToString:@"pdf"])
{
obj.oneObj.pdf = self.pdfString;
NSLog(@"PDF File Name ++++++ %@",obj.oneObj.pdf);
}
currentElement = @"";
}
and a small change also that is where i am passing this use this:-
NSString *urlString = [appDelegate.currentBookPressed stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Upvotes: 3
Reputation: 2144
declare NSString in .h file;
in Did Start parse
str=@"";
if([currentElement isEqualToString:@"pdf"]) {
str=[str stringByAppendingString:string];
obj.oneObj.pdf = [NSString stringWithFormat:@"%@",str];
NSLog(@"PDF File Name ++++++ %@",str);
}
Upvotes: 1