Я собрал действительно быстрое приложение-прототип, чтобы проверить это. То, что вы описываете, это не то поведение, которое я вижу:
XML-файл:
<? Xml version = "1.0" encoding = "UTF-8"?>
Left & amp; Право </ my_element>
Реализация:
#import "XMLMeController.h"
@implementation XMLMeController
- (IBAction)parse:(id)sender
{
NSURL *url = [NSURL fileURLWithPath:@"/Users/robertwalker/Desktop/test.xml"];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser parse];
[parser release];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"Found: %@", string);
}
@end
Выход на консоль:
2008-11-11 20: 41: 47.805 XMLMe [10941: 10b] Найдено: слева
2008-11-11 20: 41: 47.807 XMLMe [10941: 10b] Найдено: &
2008-11-11 20: 41: 47.807 XMLMe [10941: 10b] Найдено: верно
Как вы можете видеть, парсер находит «Left», затем «&» и «Right» как три отдельных события, которые отправляются делегату.
Я не могу точно сказать из вашей публикации, но вам нужно убедиться, что в XML-файле "& amp;" используется правильная сущность. а не просто символ «&», который, конечно, недопустим в файлах XML.