新手iPhone删除肥皂信封

时间:2011-01-26 16:10:16

标签: iphone xcode soap

我正在寻找一种方法来删除SOAP Response周围的信封。数据是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}

我可能采取了错误的做法,但非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

考虑到信封只是XML,您是否使用NSXMLParser来解析XML并获得所需的值?如果您不喜欢编写流解析器,还可以查看类似TouchXML的内容。

答案 1 :(得分:1)

这可能会或可能不会满足您的需求,但这就是我的方式。

让自己成为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。