2011-01-26 2 views
0

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> 

내 비누 반응이다.

{"isValid":true,"isContractor":false,"isExpired":false,"isApproved":true,"userID":"e2be94cb-2e74-4eae-91a9-d874735b8647","userType":"DUMP ","trucks":1} 

나는 잘못된 접근법을 취할 수 있지만 도움이된다면 크게 도움이 될 것입니다.

답변

1

귀하의 필요에 따라 과용 될 수도 있고 아닐 수도 있습니다. 그러나 여기에 나와 있습니다.

자신에게 NSXML 파서를 가져 오십시오. 대리자를 설정하십시오. 대리자에서

, 이러한 방법을 찾습니다

- (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 메소드에서이 부울을 아니오로 설정하십시오.

foundCharacters 메서드에서 부울 값이 YES이면 문자는 JSON입니다.

+0

감사합니다. – mike

1

엔벌 로프를 고려할 때 NSXMLParser을 사용하여 XML을 구문 분석하고 원하는 값을 얻었습니까? 스트림 파서 작성이 마음에 들지 않으면 TouchXML 같은 것을 체크 아웃 할 수도 있습니다.