消费country.asmx

时间:2011-05-08 01:44:24

标签: c# asp.net xml web-services

我正在尝试将国家/地区Web服务添加到下拉列表中。我添加了Web引用并包含discomap和wsdl文件。

这是我的代码隐藏:

net.webservicex.www.country ws = new net.webservicex.www.country();
ddlCountry.DataSource = ws.GetCountries();
ddlCountry.DataBind();

我尝试了上面的代码,但它只在下拉列表中每行显示一个字符。我不确定如何做到这一点,这是我第一次使用Web服务。我感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

GetCountries()返回XML。您需要解析XML以将国家/地区列表作为字符串列表。

如果您使用的是.NET 3.5或更高版本,则可以使用LINQ to XML轻松完成此操作。

using System;
using System.Linq;
using System.Xml.Linq;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var service = new net.webservicex.www.country();
            var xml = service.GetCountries();
            var countries = XDocument.Parse(xml).Descendants("Name").Select(arg => arg.Value).ToList();
            countriesDropDownList.DataSource = countries;
            countriesDropDownList.DataBind();
        }
    }
}