Google Weather API から XML ファイルを読み取り、NSXMLParser を使用して解析しています。問題の都市はパリです。ここに私が得る簡単なxml出力があります
<?xml version="1.0"?>
<xml_api_reply version="1">
<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" ><forecast_information>
<city data="Paris, Île-de-France"/>
<postal_code data="Paris"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
...
...
この xml を解析するために使用したコードは次のとおりです。
NSString *address = @"http://www.google.com/ig/api?weather=Paris";
NSURL *URL = [NSURL URLWithString:address];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];
[parser setDelegate:self];
[parser parse];
...
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
NSLog(@"XML Parser 1 ... elementName ... %@", elementName);
}
これは、上記のxmlに対して取得した出力です
XML Parser 1 ... elementName ... xml_api_reply
XML Parser 1 ... elementName ... weather
XML Parser 1 ... elementName ... forecast_information
問題は、名前 Paris, Île-de-France に非 ASCII 文字が含まれているため、「都市データ」に到達するまですべてのタグを解析し、その後停止することです。postal_code のように、後でタグを処理しません。緯度、経度など
私の質問は、返された URL XML 文字列から非 ASCII 文字をすべて削除する方法はありますか?