0

因此,我正在构建一个移动应用程序(使用 IBM Worklight),它通过 SOAP 调用使用一些 Web 服务。我能够让 4 个 Web 服务中的 3 个正常工作、拉回值等。该应用程序以 HTML 格式显示来自 SOAP 响应的值。这基本上是从 SOAP 响应中提取值并显示的方式:

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

只要我要显示的值是唯一的,这就可以正常工作。最终 Web 服务的 SOAP 响应很长,并且包含重复值。例如,SOAP 响应如下所示:

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

我需要提取每个字符串,但 SubServices/ServiceName 节点显然不是唯一的。有人知道如何提取这些值吗?

4

2 回答 2

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);
}
于 2012-09-13T18:02:13.090 回答
0

为什么不使用将 JSON 返回到应用程序的 HTTP SOAP 适配器?

于 2012-09-17T22:15:35.290 回答