有一XML文件约50M,需要绑定在asp.net(C#)中的GridView控件内显示内容,我用dataset绑定xml后再绑定到GridView,成功但显示无结果。
以下是我自己的测试代码Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("test.xml"));
if (ds.Tables[0].Rows.Count > 0)
{
gv.DataSource = ds.Tables[0].DefaultView;
gv.DataBind();
}
else
{
Response.Write("Error!");
}
}
}
测试结果--》显示无显示"Error!",但也不显示DridView控件!
xml文件格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Products>
<Result>1000</Result>
<Product>
<Item>
<Id>产品编号</Id>
<a1>值1</a1>
<b1>值2</b1>
<c1>值3</c1>
<d1>值4</d1>
</Item>
<Item>
……
</Item>
……
</Product>
</Products>XMLASP.NETC#
以下是我自己的测试代码Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("test.xml"));
if (ds.Tables[0].Rows.Count > 0)
{
gv.DataSource = ds.Tables[0].DefaultView;
gv.DataBind();
}
else
{
Response.Write("Error!");
}
}
}
测试结果--》显示无显示"Error!",但也不显示DridView控件!
xml文件格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Products>
<Result>1000</Result>
<Product>
<Item>
<Id>产品编号</Id>
<a1>值1</a1>
<b1>值2</b1>
<c1>值3</c1>
<d1>值4</d1>
</Item>
<Item>
……
</Item>
……
</Product>
</Products>XMLASP.NETC#
ds.ReadXml(Server.MapPath("test.xml"));
gv.DataSource = ds;不成功就改成现在这样,应该怎样写?自学的,很多地方都不太懂,东拼西凑的,呵呵,请别见笑。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("abc.xml"));
XmlNodeList songNode = doc.SelectNodes("/Products/Product/Item");
DataTable dt = new DataTable();
if (songNode != null)
{
for (int i = 0; i < songNode.Count; i++)
{
if (i == 0)
{
foreach (XmlNode item in songNode[i].ChildNodes)
{
dt.Columns.Add(item.Name);
}
}
DataRow row = dt.NewRow();
foreach (XmlNode item in songNode[i].ChildNodes)
{
row[item.Name] = item.InnerText;
}
dt.Rows.Add(row);
}
GridView1.DataSource = dt;
GridView1.DataBind();
} }
}