iPhoneプログラミングでXMLを使いたいときにはNSXMLParserを使います。他にもいろいろあるけれど、僕は一番手頃だと思います。
そんなわけでNSXMLParserを使っていて空白文字の扱いでつまづいた箇所。
xmlparser.m
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if( [currentElement isEqualToString:@"WantedString"] ){
NSLog(@"%@",string);
}
}
これで得たいタグに入っていた時にその値である文字列が表示されるはずなのですが、途中に改行文字や空白文字が入っているとうまくいかない模様。
調べてみると空白文字などがあると、途中で終わってしまうみたいなので、それをappendStringしてあげるのでいいとのこと。
xmlparser.m
NSMutableString *wantedString;
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
wantedString = [NSMutableString string];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if( [currentElement isEqualToString:@"WantedString"] ){
[wantedString appendString:string];
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
NSLog(@"%@", wantedString);
}
とやるとすべての文字が含まれて表示されるようになりました。