Titanium Mobile - 使用 suds.js 解析来自 soap Web 服务的 xml 响应



我正在尝试从 soap 网络服务接收信息,但我真的不知道如何显示我得到的结果。

我只能显示名为 :

这给了我一个很长的xml结果:响应

当我尝试使用另一个标签名称时,它没有给出任何结果。

这是我的代码:

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>

响应长度 = 1

只能显示 reponse.item(0).text,我不想要所有的东西,而只是为了举例说明一个只给我城市循环。

当我尝试用getElementsByTagName('Table')更改getElementsByTagName('GetCitiesByCountryResult')时,出现消息"not ok"。

请帮忙,我能做些什么来解析我需要的所有信息?

使用这个函数它的工作...如果要显示第一个标记,则仅使用 getFirstChild(),如果要显示其他标签,请使用此getFirstChild().getNextSibling()

您应该先尝试将响应存储在数组中,然后可以轻松提取所需的信息。例如: var show=[]; for(var i=0;i

最新更新