2012-09-13 7 views
0

SOAP 호출을 통해 몇 가지 웹 서비스를 사용하는 모바일 애플리케이션 (IBM Worklight 사용)을 빌드하고 있습니다. 필자는 4 가지 웹 서비스 중 3 가지를 작동시킬 수 있었고 값을 되돌릴 수있었습니다. SOAP 응답의 값을 HTML 형식으로 표시합니다. 이것은 기본적으로 값이 SOAP 응답에서 가져와 표시되는 방법입니다.SOAP 응답에서 고유하지 않은 값 리턴

var submit = result.invocationResult.Envelope.Body.FinSummary.out.SubServices.ServiceName; 

표시하려는 값이 고유 한 경우이 작업은 정상적으로 수행되었습니다. 최종 웹 서비스의 SOAP 응답은 매우 길며 반복 값을 포함합니다. 나는 그 STRING의 각을 꺼내 필요

<Envelope> 
    <Header/> 
    <Body> 
     <FinSummary> 
     <out> 
      <SubServices> 
      <....> 
      <ServiceName>STRING</ServiceName> 
      <....> 
      </SubServices> 
      <SubServices> 
      <....> 
      <ServiceName>STRING</ServiceName> 
      <....> 
      </SubServices> 
       <SubServices> 
      <....> 
      <ServiceName>STRING</ServiceName> 
      <....> 
      </SubServices> 
     </out> 
     </FinSummary> 
    </Body> 
</Envelope> 

하지만, 하위 서비스/ServiceName은 노드는 명확 고유하지 않습니다 예를 들어, SOAP 응답은 다음과 같습니다. 누구든지이 값을 가져 오는 방법을 알고 있습니까?

답변

0

result.invocationResult.Envelope.Body.FinSummary.out.SubServices가 배열로 해석하도록되어 있으므로 다음과 같은 작동합니다 :

var serviceNames = []; 
var subServices = result.invocationResult.Envelope.Body.FinSummary.out.SubServices; 
for (var i=0;i<subServices.length; i++){ 
    serviceNames.push(subServices[i].ServiceName); 
} 
0

가 왜 HTTP의 SOAP 어댑터를 사용하지 않는 것 애플리케이션에 JSON을 반환 하시겠습니까?

관련 문제