NSXMLParserに特有の問題が発生しました。NSXMLParserは、外部(ユニコード)文字を含む文字列を分割します。
何らかの理由で、すべてのノルウェー文字æ、øおよびåの前にあるすべての文字を切り捨てます。
しかし、問題は、すべての非AZの文字と同じであると思われる(すべての外国文字)
例:。
現実:MAL 出力:AL
現実:Leは聖歌デsirènes 出力:
:私はから文字列をプリントアウトしたログからのENEが相続人の例
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
ログイン:
2012-02-22 14:00:01.647 VotePlayClient[2776:207] found characters: Le chant des sir
2012-02-22 14:00:01.647 VotePlayClient[2776:207] found characters: ènes
あなたはそれが外国の手紙に遭遇した時はいつでも、それは新しい行にジャンプすることをはっきりと見ることができます。
私は、文字列やその何かを追加する方法を理解しなければならないと思います。ここで
はNSXMLParserファイルです:SearchXMLParser.h
#import <Foundation/Foundation.h>
#import "Search.h"
@interface SearchXMLParser : NSObject <NSXMLParserDelegate>
{
NSMutableString *currentNodeContent;
NSMutableArray *searchhits;
NSMutableArray *trackhits;
NSXMLParser *parser;
Search *currentSearch;
}
@property (readonly, retain) NSMutableArray *searchhits;
@property (readonly, retain) NSMutableArray *trackhits;
-(id) loadXMLByURL:(NSString *)urlString;
@end
私はすでに答えをSOチェックし、類似した記事のカップルを発見した
#import "SearchXMLParser.h"
#import "Search.h"
@implementation SearchXMLParser
@synthesize searchhits, trackhits;
-(id) loadXMLByURL:(NSString *)urlString
{
searchhits = [[NSMutableArray alloc] init];
trackhits = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
return self;
}
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementname isEqualToString:@"track"])
{
currentSearch = [Search alloc];
}
if ([elementname isEqualToString:@"track"])
{
currentSearch.trackurl = [attributeDict objectForKey:@"href"];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementname isEqualToString:@"name"])
{
[trackhits addObject:currentNodeContent];
}
if ([elementname isEqualToString:@"track"])
{
currentSearch.track = [trackhits objectAtIndex:0];
currentSearch.artist = [trackhits objectAtIndex:1];
currentSearch.album = [trackhits objectAtIndex:2];
[trackhits removeAllObjects];
[searchhits addObject:currentSearch];
[currentSearch release];
currentSearch = nil;
[currentNodeContent release];
currentNodeContent = nil;
}
}
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"found characters: %@", string);
currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
- (void) dealloc
{
[parser release];
[super dealloc];
}
@end
SearchXMLParser.mが、この問題を明確に解決したものは何もありません。
誰でもこの問題を解明できますか? :)どんな助けも大歓迎です!
を。 –