外部XML数据到gridview

时间:2013-09-22 13:21:43

标签: asp.net xml gridview

我正在尝试从公共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>

非常感谢任何帮助。

提前感谢您的帮助。

RU

1 个答案:

答案 0 :(得分: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; }
}