Новичок IPhone, удаляющий мыльный конверт - PullRequest
0 голосов
/ 26 января 2011

Я ищу способ удалить конверт вокруг моего SOAP-ответа.Данные находятся в формате JSON, но на самом деле не имеют уровней, поэтому, если я смогу удалить конверт, я знаю, что смогу их проанализировать, потому что я поместил данные в файл json и заставил парсер работать на него.Моя единственная проблема, когда я получаю ответ от сервера, - это конверт с данными.

Я посмотрел много, но, похоже, не могу найти ответ.Любая помощь и пример кода приветствуются!

Это мой ответ на мыло

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <AuthenticateUserResponse xmlns="http://tempuri.org/">
         <AuthenticateUserResult>{"isValid":true,"isContractor":false,"isExpired":false,"isApproved":true,"userID":"e2be94cb-2e74-4eae-91a9-d874735b8647","userType":"DUMP ","trucks":1}</AuthenticateUserResult>
      </AuthenticateUserResponse>
   </s:Body>
</s:Envelope>

Я хочу вытащить это.подход, но любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 26 января 2011

Это может быть, а может и не быть излишним для ваших нужд, но вот как я это делаю.

Получите себе NSXMLParser.Установите его делегат.

В делегате найдите следующие методы:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)characters

В методе didStartElement проверьте, является ли elementName AuthenticateUserResult.Если это так, установите логическое значение isInAuthenticateUserResult = YES;

. В методе didEndElement установите для этого логического значения значение no.

В методе foundCharacters, если логическое значение равно YES, символы являются вашим JSON.

1 голос
/ 26 января 2011

Учитывая, что конверт - это просто XML, вы рассматривали использование NSXMLParser , чтобы просто проанализировать XML и получить желаемое значение?Если вам не нравится писать потоковые парсеры, вы также можете попробовать что-то вроде TouchXML .

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