如何在前台显示出xml里相同名称节点里的值 本帖最后由 ajhowie 于 2014-07-19 22:12:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转化成 List<T> 直接 DataBind 参考一下这个http://www.cnblogs.com/because/archive/2012/03/03/2378761.html protected void Button1_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("report.xml")); var lists = ds.Tables["report"]; this.GridView1.DataSource = lists; GridView1.DataBind(); } 我想从每个report里取出里面每个节点包含的值,这个算法只能把report的值全都显示出来吧 现在有 i 个 report 我想在前台显示 每个 report里包含的<seqid> 里的值,<phone>里的值等等。 var lists = ds.Tables["report"];这句话就是把所有report节点拿出来,至于你要显示<seqid> or <phone>完全可以继续lists....操作撒 protected void Button1_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("report.xml")); //读取所有report保存成 datatable DataTable table = ds.Tables["report"].AsDataView().ToTable(); //剔除你不需要的列 table.Columns.Remove("pktotal"); table.Columns.Remove("pknumber"); table.Columns.Remove("stat"); table.Columns.Remove("text"); table.Columns.Remove("time"); table.Columns.Remove("data_id"); this.GridView1.DataSource = table; GridView1.DataBind(); } 读取xml中节点数据#region 获取XML中的数据 public static DataTable GetData(string path,string tableName) { //创建XmlDocument类的实例 XmlDocument xmldoc = new XmlDocument(); //调用XmlDocument类中的Load()方法加载XML文件 xmldoc.Load(path); //创建DataTable类型的变量dt DataTable dt = new DataTable(); ///获取根节点 XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s"); //判断节点及其子节点是否为空,为空将返空值 if(rootNode == null) return null; if(rootNode.ChildNodes.Count <= 0) return null; ///创建保存记录的数据列 foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes) { dt.Columns.Add(new DataColumn(attr.Name,typeof(string))); } ///创新获取数据节点的XPath string xmlPath = "/" + tableName + "s/" + tableName; //获取XML节点下的所有节点 XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath); //遍历所有节点 foreach(XmlNode node in nodeList) { //创建数据表行,并在其中添加数据 DataRow row = dt.NewRow(); foreach(DataColumn column in dt.Columns) { ///读取每一个属性 row[column.ColumnName] = node.Attributes[column.ColumnName].Value; } //将数据表行添加到数据表中 dt.Rows.Add(row); } //返回DataTable对象dt return dt; } 对了,我的xml是通过webservice返回的xml文档,ds.ReadXml(Server.MapPath("report.xml"))这里面的地址怎么写呢这个是调用webservice的方法:XDTWebService xdt = new XDTWebService();String xml = xdt. GetReports("user", "pwd"); 对了,我的xml是通过webservice返回的xml文档,ds.ReadXml(Server.MapPath("report.xml"))这里面的地址怎么写呢这个是调用webservice的方法:XDTWebService xdt = new XDTWebService();String xml = xdt. GetReports("user", "pwd");protected void Button1_Click(object sender, EventArgs e) { XDTWebService xdt = new XDTWebService(); String xml = xdt.GetReports("user", "pwd"); DataSet ds = new DataSet(); //将xml转化成stream byte[] array = Encoding.ASCII.GetBytes(xml); MemoryStream stream = new MemoryStream(array); StreamReader reader = new StreamReader(stream); //dataset 读取stream ds.ReadXml(reader); //读取所有report保存成 datatable DataTable table = ds.Tables["report"].AsDataView().ToTable(); //剔除你不需要的列 table.Columns.Remove("pktotal"); table.Columns.Remove("pknumber"); table.Columns.Remove("stat"); table.Columns.Remove("text"); table.Columns.Remove("time"); this.GridView1.DataSource = table; GridView1.DataBind(); } MemoryStream stream = new MemoryStream(array); StreamReader reader = new StreamReader(stream); 这一行多余的可以删掉 直接将stream传给ds //dataset 读取stream ds.ReadXml(stream); var rootE = XDocument.Load(path);var query = from c in rootE .Descendants("report") select c; 大家遇上这样的打包问题都是怎么解决的,vs2008自带打包程序制作的安装程序!真是费电呀! 无法关闭程序? C#下如何创建带窗体的DLL 大家帮我看看这段代码有什么问题? IE中F12可以根据选择来查看对应区域源文件,跪求实现 跨线程如何调用windows窗体 在datagridview上如何通过编程添加button按钮? 想找一个c#方面的老师在上海 sharpmap开发 处女帖! 登陆界面如何调用主界面的方法或字段? 在路由器设置为每一层的用户分别分配一个用户名密码,让所有用户不能通过DHCP 上网,只能通过提供的账号密码进行拨号上网 如何用代码反转一个checked项的选中状态?
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("report.xml"));
var lists = ds.Tables["report"]; this.GridView1.DataSource = lists;
GridView1.DataBind();
}
我想从每个report里取出里面每个节点包含的值,这个算法只能把report的值全都显示出来吧
这句话就是把所有report节点拿出来,至于你要显示<seqid> or <phone>完全可以继续lists....操作撒
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("report.xml")); //读取所有report保存成 datatable
DataTable table = ds.Tables["report"].AsDataView().ToTable(); //剔除你不需要的列
table.Columns.Remove("pktotal");
table.Columns.Remove("pknumber");
table.Columns.Remove("stat");
table.Columns.Remove("text");
table.Columns.Remove("time");
table.Columns.Remove("data_id"); this.GridView1.DataSource = table;
GridView1.DataBind();
}
#region 获取XML中的数据
public static DataTable GetData(string path,string tableName)
{
//创建XmlDocument类的实例
XmlDocument xmldoc = new XmlDocument();
//调用XmlDocument类中的Load()方法加载XML文件
xmldoc.Load(path);
//创建DataTable类型的变量dt
DataTable dt = new DataTable();
///获取根节点
XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s");
//判断节点及其子节点是否为空,为空将返空值
if(rootNode == null) return null;
if(rootNode.ChildNodes.Count <= 0) return null;
///创建保存记录的数据列
foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes)
{
dt.Columns.Add(new DataColumn(attr.Name,typeof(string)));
}
///创新获取数据节点的XPath
string xmlPath = "/" + tableName + "s/" + tableName;
//获取XML节点下的所有节点
XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath);
//遍历所有节点
foreach(XmlNode node in nodeList)
{
//创建数据表行,并在其中添加数据
DataRow row = dt.NewRow();
foreach(DataColumn column in dt.Columns)
{ ///读取每一个属性
row[column.ColumnName] = node.Attributes[column.ColumnName].Value;
}
//将数据表行添加到数据表中
dt.Rows.Add(row);
}
//返回DataTable对象dt
return dt;
}
这个是调用webservice的方法:
XDTWebService xdt = new XDTWebService();
String xml = xdt. GetReports("user", "pwd");
这个是调用webservice的方法:
XDTWebService xdt = new XDTWebService();
String xml = xdt. GetReports("user", "pwd");
protected void Button1_Click(object sender, EventArgs e)
{
XDTWebService xdt = new XDTWebService();
String xml = xdt.GetReports("user", "pwd");
DataSet ds = new DataSet();
//将xml转化成stream
byte[] array = Encoding.ASCII.GetBytes(xml);
MemoryStream stream = new MemoryStream(array);
StreamReader reader = new StreamReader(stream); //dataset 读取stream
ds.ReadXml(reader); //读取所有report保存成 datatable
DataTable table = ds.Tables["report"].AsDataView().ToTable(); //剔除你不需要的列
table.Columns.Remove("pktotal");
table.Columns.Remove("pknumber");
table.Columns.Remove("stat");
table.Columns.Remove("text");
table.Columns.Remove("time"); this.GridView1.DataSource = table;
GridView1.DataBind();
}
MemoryStream stream = new MemoryStream(array);
StreamReader reader = new StreamReader(stream); 这一行多余的可以删掉 直接将stream传给ds
//dataset 读取stream
ds.ReadXml(stream);
var query = from c in rootE .Descendants("report")
select c;