Обработка результата ответа SUDZC -NSMutableArray
Я использую SUDZC с веб-сервисом, который отвечает несколькими различными массивами: E_ANT, EFULLNAME, E_RULE, E_VACDAYS. Но когда я смотрю на результат запроса, отображаются только значения для E_ANT. Как я могу получить доступ к другим элементам или это невозможно с помощью sudzc?
<n0:Z_COM_URL_GETRECORDSResponse xmlns:n0="urn:sap-com:document:sap:rfc:functions">
<E_ANT>
<item>
<MANDT>010</MANDT>
<USERID>00000016</USERID>
<VAC_DATE>2012-01-09</VAC_DATE>
</item>
<item>
<MANDT>010</MANDT>
<USERID>00000016</USERID>
<VAC_DATE>2012-02-01</VAC_DATE>
</item>
....
<item>
<MANDT>010</MANDT>
<USERID>00000016</USERID>
<VAC_DATE>2012-03-15</VAC_DATE>
</item>
</E_ANT>
<E_FULLNAME>Vanessa Martinez</E_FULLNAME>
<E_RULE>
<item>
<MANDT>010</MANDT>
<USERID>00000016</USERID>
<DATE_FROM>2008-01-07</DATE_FROM>
<DATE_TO>9999-12-31</DATE_TO>
<VAC_ENTITLE>30.0</VAC_ENTITLE>
<ERNAM_ID>00004001</ERNAM_ID>
<ERDAT>2008-01-15</ERDAT>
</item>
</E_RULE>
<E_VACDAYS>
<MANDT>010</MANDT>
<USERID>00000016</USERID>
<KJAHR>2012</KJAHR>
<VAC_THIS_YEAR>30.0</VAC_THIS_YEAR>
</E_VACDAYS>
<E_VACPAID/>
</n0:Z_COM_URL_GETRECORDSResponse>
1 ответ
Мой вывод не был в XML. Вы показываете нам вывод из sudzc или фактические данные XML? Вот как я извлек свои данные sudzc
if( [value isKindOfClass:[NSError class]] || [value isKindOfClass:[SoapFault class]] )
{
NSLog(@"%@", [value description]);
return;
}
// Verify we're a dictionary
if( ![value isKindOfClass:[NSDictionary class]] ) {
NSLog(@"ERROR: Response not a dictionary");
return;
}
NSDictionary* dict = (NSDictionary*)value;
NSDictionary* resp = [dict objectForKey:@"E_AN"];
if( ( resp == nil ) || ![resp isKindOfClass:[NSDictionary class]] ) {
NSLog(@"ERROR: E_AN not a dictionary");
return;
}
dict = [resp objectForKey:@"item"];
if( ( dict == nil ) || ![dict isKindOfClass:[NSDictionary class]] ) {
NSLog(@"ERROR: item not a dictionary");
return;
}
resp = [dict objectForKey:@"MANDT"];
if( ( resp == nil ) || ![resp isKindOfClass:[NSDictionary class]] ) {
NSLog(@"ERROR: MANDT not a dictionary");
return;
}
...