c# - 消费国.asmx

标签 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();

我试过上面的代码,但它在下拉列表中每行只显示一个字符。我不太确定该怎么做,这是我第一次使用网络服务。我感谢任何帮助。谢谢!

最佳答案

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();
        }
    }
}

关于c# - 消费国.asmx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925133/

相关文章:

c# - 获取静态方法内的非静态方法名称

c# - asp.net 部署 - 找不到 Main.Master.cs 文件

asp.net - 如何在正则表达式中允许双引号?

javascript - Radgrid 通过 Javascript 触发 RowClick 事件或者只使用 EnablePostbackOnRowClick

php - DOMDocument::loadXML(): StartTag: 实体中的元素名称无效

c# - 在 C# 中相当于 Haskell 的 Data.List.Span

c# - SslStream.AuthenticateAsClient() 使用未缓存的 CRL 非常慢

c# - 从 DetailsView 获取 BoundField 的值

javascript - JavaScript 中的未定义错误

java - Xpath 总是返回 JAVA 中 XML 的第一个子节点