「ログイン」を使用してxml「文字列」を返すWebサービス呼び出しを介してデータベースを検索するアプリを作成しています。
この呼び出しの wdsl は次のとおりです。
<s:element name="PerformGlobalSearch">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="searchString" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="errorCode" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="errorDescription" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="PerformGlobalSearchResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PerformGlobalSearchResult">
<s:complexType mixed="true">
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
<s:element minOccurs="1" maxOccurs="1" name="errorCode" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="errorDescription" type="s:string"/>
</s:sequence>
</s:complexType>
wsdl2objc を使用してコードを生成しましたが、正常に動作しているようです。返された xml にアクセスする方法を知る必要があるだけです。
NSLog
「webserviceSvc.m」クラスのresponsdataの場合、xmlを出力します。ただし、その後、wsdl2objc "PerformeGlobalSearchResponse" によって生成されたオブジェクトを返します。これをコードで受け取ることができましたが、含まれているはずの xml にアクセスできないようです。
-(void) processResponse : (WebServiceSoapBindingResponse *)soapResponse {
NSArray *responseBodyParts = soapResponse.bodyParts;
id bodyPart;
@try{
bodyPart = [responseBodyParts objectAtIndex:0];
}
...
else if([bodyPart isKindOfClass:[xxxWebServiceSvc_PerformeGlobalSearchResponse class]]) {
xxxWebServiceSvc_PerformGlobalSearchResponse* SearchResponse = bodyPart;
NSLog(@"Test: %@", SearchResponse.PerformeGlobalSearchResult);
}
私は多くの異なる方法を試しました。私はxmlにアクセスする必要があり、それを解析する必要があります。解析 さまざまな解決策を試しながら、うまくいったと思います。
しかし、どうすればxmlにアクセスできますか? PerformGlobalSearchResult を xml ドキュメントに変換するにはどうすればよいですか?