gridview与XML数据源
问题描述:
我是新来的asp.net web窗体。gridview与XML数据源
我有XML,如下所示。
<table>
<row id="1" name="name1"/>
<row id="2" name="name2"/>
<row id="3" name="name3"/>
<row id="4" name="name3"/>
<row id="5" name="name3"/>
</table>
我想将这个数据绑定到asp:GridView。 但只有名称的一部分,不是Id。
我所做的就是在这里,但并非全部。 我甚至不知道它是否正确。
protected void Page_Load(object sender, EventArgs e)
{
var XmlPath = Server.MapPath("~/Data.xml");
XmlDocument doc = new XmlDocument();
doc.Load(XmlPath);
DataTable dt = new DataTable();
foreach (XmlNode xn in doc.ChildNodes[1])
{
string tagName = xn.Name;
if (!dt.Columns.Contains(tagName))
{
dt.Columns.Add(tagName);
}
}
DataRow dr = dt.NewRow();
foreach (XmlNode xn in doc.ChildNodes[1])
{
dr[xn.Name] = xn.InnerText;
}
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
}
我也有过滤数据,EXA。我只想打印这些数据,其ID为2和4
答
您可以使用LINQ to XML
这样的:
XDocument doc = XDocument.Load("~/Data.xml");
var names = from r in doc.Descendants("row")
select (string)r.Attribute("name");
GridView1.DataSource = names;
GridView1.DataBind();