получить значение элемента - PullRequest
0 голосов
/ 24 февраля 2010

У меня есть NSString, как это? (в приложении для iPhone)

  NSString *xmlStr =  "<?xml version=1.0 encoding=UTF-8>
                         <information>
                             <name>John</name>
                             <id>435346534</id>
                             <phone>045635456</phone>
                             <address>New York</address>
                         </information>" 

Как узнать значение элементов? (Нужно ли конвертировать в формат XML и получать значения элементов?

Спасибо, ребята.

Ответы [ 3 ]

0 голосов
/ 24 февраля 2010

Наиболее очевидным решением является использование синтаксического анализатора XML для извлечения значений из каждого элемента.

Вы можете использовать превосходные TBXML для этой задачи. Он обеспечивает действительно простой интерфейс, в котором для извлечения желаемых значений может потребоваться не более нескольких строк. Недостаток использования этой небольшой библиотеки заключается в том, что она (насколько я знаю) загружает все данные XML в память. Однако в данном конкретном случае это совсем не проблема.

Конечно, есть и опция использования NSXMLParser, хотя это парсер, управляемый событиями, и, следовательно, немного менее простой в использовании.

0 голосов
/ 24 февраля 2010

Если вы хотите использовать разделенную строку, вы можете использовать токенизацию строк, используя метод "componentsSeparatedByString". Конечно, это более громоздкий метод, чем рекомендуемый XMLParser

Чтобы получить имя.

NSArray *xmlStr_first_array = [xmlStr componentsSeparatedByString: @"<name>"];

NSString *xmlStr_split = [NSString stringWithFormat:@"%@",[xmlStr_first_array objectAtIndex:1]];

NSArray *xmlStr_second_array = [xmlStr_split componentsSeparatedByString: @"</name>"];

NSString *name = [NSString stringWithFormat:@"%@",[xmlStr_second_array objectAtIndex:0]];
0 голосов
/ 24 февраля 2010

Ваша строка уже в формате xml, и вам нужно проанализировать ее для получения данных. Доступно несколько вариантов - например, вы можете использовать класс NSXMLParser или библиотеку libxml.

Редактировать: XMLPerformance Пример проекта показывает, как использовать оба подхода и сравнить их производительность.

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