Я пытаюсь проанализировать XML-файл, содержащий следующие арабские слова:
<NewsComponent>
<HeadLine>العلاجية</HeadLine>
</NewsComponent>
когда я NSLog строку на делегате NSXMLParser
, он печатает пустую строку, и даже когда я анализирую данные в UITableView
, он показывает пустой текст.
Я кодирую данные как UTF-8, прежде чем передать их анализатору.
Как я могу разобрать XMl без потери содержимого тега HeadLine?
Примечания:
1. Тот же XML с английским языком работает правильно.
2. Отображение XML в любом браузере показывает данные правильно.
3. Преобразование NSData в NSString и NSLoging перед анализом NSString также правильно отображает xml.
Редактировать Как я это делаю?
NSString *sURLREST = @"http://www.example.com/getXml";
NSURL *url = [NSURL URLWithString:sURLREST];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSURLResponse *response;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error];
NSString* output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSData* dataOutput = [output dataUsingEncoding: NSUTF8StringEncoding];
NSXMLParser *parser = [[NSXMLParser alloc] dataOutput];
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if([sCurrentItem isEqualToString:@"HeadLine"])
{
[mutuableArray addObject:string];
// I am just adding the string value to a NSMutuableArray to bind it with the UITableView.
NSLog(@"%@",string);
}
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
sCurrentItem = elementName;
}