我有这样的回应:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:SurfaceElementListResponse xmlns:ns2="http://isiows.isiom.fr/schema/DmdCreation" xmlns:ns3="http://isiows.isiom.fr/schema/Error" xmlns:ns4="http://isiows.isiom.fr/schema/DmdDetail">
<SurfaceElementListResult>
<idSurfaceElement>9482</idSurfaceElement>
<name>R04-</name>
<type>NIVEAU</type>
</SurfaceElementListResult>
<SurfaceElementListResult>
<idSurfaceElement>9486</idSurfaceElement>
<name>Zone A</name>
<type>ZONE</type>
</SurfaceElementListResult>
</ns2:SurfaceElementListResponse>
</soap:Body>
</soap:Envelope>
我正在等待将每个对象反序列化为 NSDictionary,因为它适用于除上述之外的所有其他 WS 响应。与其他响应相比,在 SOAP.m:+ (id) deserialize: (CXMLNode*) element
方法中,语句的所有响应都NSString* type = [Soap getNodeValue:element withName:@"type"];
返回 nil,所以它继续返回[Soap deserializeAsDictionary:element];
,我得到了必要的结果。在我的情况下,当我到达NSString* type = [Soap getNodeValue:element withName:@"type"];
该语句时,第一个对象返回“NIVEAU”,另一个对象返回“ZONE”,这不允许应用程序运行并执行[Soap deserializeAsDictionary:element];
,我得到一个字符串对象而不是 NSDictionary 作为解析结果。
你能帮我解决这个问题吗?