1

我正在尝试从公共 XML 文件获取数据(链接)到我的 gridview。

我正在尝试关注,但无法完成。任何人都可以帮助我吗?

<body>
    <form id="form1" runat="server">
    <div>
        <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="http://weather.aero/dataserver_current/httpparam?dataSource=metars&requestType=retrieve&format=xml&stationString=lebl&hoursBeforeNow=5"> </asp:XmlDataSource>
        <asp:GridView ID="GridView1" runat="server" DataSourceID="XmlDataSource1">
        </asp:GridView>
    </div>
    </form>
</body>

任何帮助将不胜感激。

提前感谢您的帮助。

俄罗斯

4

1 回答 1

0

无论如何,您都必须解析 XML,所以试试这个

标记

<asp:GridView ID="WeatherList" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Latitude" HeaderText="Latitude" />
        <asp:BoundField DataField="WindDirectionSpeed" HeaderText="Wind Speed(kms)" />
    </Columns>
</asp:GridView>

代码隐藏

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindWeatherGrid();
    }
}

private void BindWeatherGrid()
{
    var url = "http://weather.aero/dataserver_current/httpparam?dataSource=metars&requestType=retrieve&format=xml&stationString=lebl&hoursBeforeNow=5";
    XDocument doc = XDocument.Load(url);
    var metars = from wthr in doc.Descendants("METAR")
                  select new Metar()
                  {
                      Latitude = (string)wthr.Element("latitude"),
                      WindDirectionSpeed = (string)wthr.Element("wind_speed_kt")
                  };
    WeatherList.DataSource = metars;
    WeatherList.DataBind();
}

使用的命名空间

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

助手类

public class Metar
{
    public string Latitude { get; set; }
    public string WindDirectionSpeed { get; set; }
}
于 2013-09-22T14:35:32.303 回答