1

SOAP Web サービスから情報を取得しようとしていますが、取得した結果を表示する方法が本当にわかりません。

という名前の最初のグローバル タグのみを表示できます。

これにより、長い xml result : responseが得られます。

別のタグ名で試してみると、結果が得られません。

これが私のコードです:

Ti.include('suds.js');

var win = Ti.UI.createWindow({
    backgroundColor : '#ffffff'

});

var view = Ti.UI.createScrollView({
    layout: 'Vertical',
    contentHeight:'auto'
});

var label = Ti.UI.createLabel({
    color : '#000000'
});

var url = "http://www.webservicex.net/globalweather.asmx";

var callParams = {
    CountryName : 'belgium'
};

var suds = new SudsClient({
    endpoint : url,
    targetNamespace : 'http://www.webserviceX.NET'
});

suds.invoke('GetCitiesByCountry', callParams, function(xmlDoc) {

    var response = xmlDoc.documentElement.getElementsByTagName('GetCitiesByCountryResult');

    if (response && response.length > 0) {

        label.text = response.item(0).text;
    } else {
        label.text = 'NOT OK';
    }

});

view.add(label);
win.add(view);
win.open();

応答は次のようなものです。

<NewDataSet>
 <Table>
  <Country>Belgium</Country>
  <City>Antwerpen</City>
 </Table>
 <Table>
  <Country>Belgium</Country>
  <City>Beauvechain</city>
 </Table>
</NewDataSet>

response.length = 1

reponse.item(0).text しか表示できませんでした。すべてのものは必要ありませんが、例として、都市のみを表示するループが必要です。

getElementsByTagName('GetCitiesByCountryResult') を getElementsByTagName('Table') で変更しようとすると、「not ok」というメッセージが表示されます。

助けてください、必要なすべての情報を解析するにはどうすればよいですか?

4

2 に答える 2

0

最初に応答を配列に格納してみてください。そうすれば、必要な情報を簡単に抽出できます。例: var show=[]; for(var i=0;i

于 2014-09-23T11:07:58.607 に答える