我正在尝试从soap webservice接收信息,但我真的不知道如何显示我得到的结果。
我只能显示名为的第一个全局标记:
这给了我一个很长的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>
response.length = 1
只能显示reponse.item(0).text我不想要所有的东西,只是为了举例说明只给我一个城市的循环。
当我尝试使用getElementsByTagName('Table')更改getElementsByTagName('GetCitiesByCountryResult')时,会显示消息“not ok”。
请帮助,我该怎么做才能解析我需要的所有信息?
答案 0 :(得分:0)
使用此功能正在工作...... 如果要显示第一个标记,则只使用getFirstChild(), 如果你想显示其他标签,那么使用这个getFirstChild()。getNextSibling()
答案 1 :(得分:0)
您应首先尝试将响应存储在数组中,然后您可以轻松提取所需的信息。 对于前: var show = []; for(var i = 0; i