Web Url包含我的NSXMLParser不解析的西班牙字符
问题描述:
我正在解析来自服务器的Web URL并将它们存储在字符串中,然后在Webview上显示它。但现在,当我解析西班牙语单词像Web Url包含我的NSXMLParser不解析的西班牙字符
http://litofinter.es.milfoil.arvixe.com/litofinter/PDF/Presentación_LITOFINTER_(ES).pdf
它接受它
PDF File Name ++++++ http://litofinter.es.milfoil.arvixe.com/litofinter/PDF/Presentaci
PDF File Name ++++++ ón_LITOFINTER_(ES).pdf
即两个不同的琴弦......我知道我必须做出小的变化就是将字符串,但我现在无法做到,任何人都可以帮助我。这里是我的代码: -
- (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 = @"";
}
我会感谢你。
答
declare NSString in .h file;
in Did Start parse
[email protected]"";
if([currentElement isEqualToString:@"pdf"]) {
str=[str stringByAppendingString:string];
obj.oneObj.pdf = [NSString stringWithFormat:@"%@",str];
NSLog(@"PDF File Name ++++++ %@",str);
}
答
我找到了答案:
- (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 = @"";
}
和小的变化也就是在那里我传递这种使用这样的: -
NSString *urlString = [appDelegate.currentBookPressed stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
非常感谢罗恩,我很欣赏你的快速响应。 – mAc
@ mAc欢迎亲爱的 – Ron
我还没有尝试过你的建议,因为我的工作,但我正在给你的答案是正确的,至少你得到一些积分为你有用的努力。谢谢。 – mAc