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