NSXMLParser и ссылки на сущности - PullRequest
1 голос
/ 11 ноября 2008

Что мне нужно сделать с NSXMLParser, чтобы он обрабатывал символы сущностей? Например, если у меня есть следующий элемент Left & Right , я получаю только «Right» в синтаксическом анализаторе: foundCharacters: метод делегата.

Спасибо.

1 Ответ

5 голосов
/ 12 ноября 2008

Я собрал действительно быстрое приложение-прототип, чтобы проверить это. То, что вы описываете, это не то поведение, которое я вижу:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...