【问题标题】:Titanium Mobile - Parsing xml response from a soap webservice with suds.jsTitanium Mobile - 使用 suds.js 解析来自肥皂网络服务的 xml 响应
【发布时间】:2012-06-05 08:19:33
【问题描述】:

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

我只能显示第一个名为的全局标记:

这给了我一个很长的 xml 结果: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('Table') 更改 getElementsByTagName('GetCitiesByCountryResult') 时,会出现“not ok”消息。

请帮忙,我该怎么做才能解析我需要的所有信息?

【问题讨论】:

    标签: xml web-services soap titanium-mobile suds


    【解决方案1】:

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

    【讨论】:

    • 欢迎来到 StackOverflow!因为你的答案有点难以理解。以代码形式发布示例将使这成为更好的答案。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      相关资源
      最近更新 更多