Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tianium Mobile-使用suds.js解析来自soap Web服务的xml响应_Xml_Web Services_Soap_Titanium Mobile_Suds - Fatal编程技术网

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

Tianium Mobile-使用suds.js解析来自soap Web服务的xml响应,xml,web-services,soap,titanium-mobile,suds,Xml,Web Services,Soap,Titanium Mobile,Suds,我试图从soap Web服务接收信息,但我真的不知道如何显示我得到的结果 我只能显示名为的第一个全局标记: 这给了我一个很长的xml结果:响应 当我尝试使用另一个标记名时,它不会给出任何结果 这是我的密码: Ti.include('suds.js'); var win = Ti.UI.createWindow({ backgroundColor : '#ffffff' }); var view = Ti.UI.createScrollView({ layout: 'Vert

我试图从soap Web服务接收信息,但我真的不知道如何显示我得到的结果

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

这给了我一个很长的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=[];
对于(var i=0;我来谈谈StackOverflow!照目前的情况,你的答案有点难以理解。以代码形式发布一个示例将使这成为一个更好的答案。