0

そこで、SOAP呼び出しを介していくつかのWebサービスを使用するモバイルアプリケーション(IBM Worklightを使用)を構築しています。4つのWebサービスのうち3つを機能させたり、値をプルバックしたりすることができました。アプリは、SOAP応答からの値をHTML形式で表示します。これは基本的に、値が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

アプリケーションに JSON を返す HTTP SOAP アダプターを使用しないのはなぜですか?

于 2012-09-17T22:15:35.290 に答える
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 に答える