Разбор XML-данных с iPhone, теги не отображаются - PullRequest
1 голос
/ 15 марта 2012

Я столкнулся с особой проблемой при анализе некоторых XML-данных в моем приложении для iPhone.Когда я передаю данные xml классу NSXMLParser для анализа, он игнорирует часть, в которой начинают появляться реальные данные.Он показывает все имена элементов перед тем, как появляются данные, такие как Soapenvolopebody и т. Д. Позже я заметил, что теги появляются с '<';и>>; символы, которые вызывают проблему.

Я надеюсь, что для этого потребуется стратегия замены, прежде чем анализировать ее в NSXMLParser.Мои вопросы: почему iPhone воспринимает XML таким образом?Я генерирую XML динамически из файла php и поставляется как XML при загрузке в браузер IE.Надеюсь, вы поможете мне решить проблему.

Обновление

Я все еще ищу решение.Я думаю, что идея преобразования NSString в NSData и последующей передачи его в NSXMLParser могла бы выполнить синтаксический анализ.

NSString * str = @ "teststring";
NSData * data = [str dataUsingEncoding: NSUTF8StringEncoding];
Я обнаружил, что это упомянуто в следующем посте, который я опробую. Как преобразовать значение NSString в NSData?

Обновление 1

Я получаю данные в формате NSData.Преобразован в NSString и применен код замены, чтобы покончить с <и> вещами.После этого я снова преобразовал замененную строку NSString в формат NSData.Но все же xml неправильно анализирует с помощью NSXMLParser.

1 Ответ

2 голосов
/ 15 марта 2012

замените ненужный символ, используя эту строковую функцию.пожалуйста, обратитесь к приведенному ниже коду.

NSString *theXML = [[[NSString alloc] initWithBytes: [webdata mutableBytes] length:[webdata length] encoding:NSUTF8StringEncoding]autorelease];

theXML = [theXML stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"];
theXML = [theXML stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];
theXML = [theXML stringByReplacingOccurrencesOfString:@"&amp;" withString:@"&"];

NSLog(@"%@",theXML);

Спасибо

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