Поиск строки в XML - PullRequest
0 голосов
/ 21 марта 2012

Я получаю ответ от вызова веб-службы в формате XML.Я хочу найти строку status в ответе XML и продолжить работу в зависимости от ее значения.Как я могу это сделать?Ответ ниже:

<META NAME="ColdFusionMXEdition" CONTENT="ColdFusion DevNet Edition - Not for Production Use."><?xml version="1.0" encoding="UTF-8"?>
<ParticipantService>
    <Response>
        <student_id>10082</student_id>
    </Response>
    <RequestStatus>
        <Code>1</Code>
        <Status>SUCCESS</Status>
        <Message>Valid Credentials.</Message>
    </RequestStatus>
</ParticipantService>

Ответы [ 3 ]

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

Вы можете использовать NSXmlParser . Если вы проверяете только статус, вы можете выполнить некоторые действия со строками следующим образом:

NSString *mystring = @"<Response><status>SUCCESS</status> </Response>";
NSString *neededString = nil;
NSScanner *scanner =[NSScanner scannerWithString:mystring];
[scanner scanUpToString:@"<status>" intoString:NULL];
[scanner scanString:@"<status>" intoString:NULL];
[scanner scanUpToString:@"</status>" intoString:&neededString];
NSLog(@"%@",neededString);
if ([neededString isEqualToString:@"SUCCESS"]){  //do what you like. }
1 голос
/ 21 марта 2012

Взгляните на NSXMLParser и ознакомьтесь с главой "Основы синтаксического анализа XML" в Руководство по программированию на основе событий XML

1 голос
/ 21 марта 2012

Есть ли у вас доступ к XPath в ваших библиотеках разработки?

Если это так, вы можете использовать (например,);

if (myDoc.xPath('/RequestStatus[Status = "SUCCESS"]').size() > 0) {  }
...