Как разобрать строки, содержащие амперсанды с NSXMLParser? - PullRequest
0 голосов
/ 20 октября 2011

Строка ввода

<path>a &amp; b</path>

и мой код синтаксического анализатора Objective C *

- (void) parser:(NSXMLParser *)parser
foundCharacters:(NSString *)string {
    ...
    if(parserState==EXPECT_PATH) {
        NSLog(@"got %@", string);
    }
    ...
}

Это печатает got a вместо got a &amp; b

1 Ответ

4 голосов
/ 20 октября 2011

parser:foundCharacters: может вызываться несколько раз для содержимого одного элемента.Вы несете ответственность за добавление всех символов из нескольких запусков метода в одну строку.

Таким образом, если вы не можете подтвердить, что parser:foundCharacters: не вызывается снова после первого запуска, это ожидаемое поведение.

...