1

我将 SUDZC 与一个 Web 服务一起使用,该服务响应几个不同的数组: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>
4

1 回答 1

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;
}

...

于 2012-03-30T01:25:27.617 回答