本帖最后由 ajhowie 于 2014-07-19 22:12:57 编辑

解决方案 »

  1.   

    转化成 List<T> 直接 DataBind
      

  2.   

    参考一下这个http://www.cnblogs.com/because/archive/2012/03/03/2378761.html
      

  3.   

     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();
            }
      

  4.   


    我想从每个report里取出里面每个节点包含的值,这个算法只能把report的值全都显示出来吧
      

  5.   

    现在有 i 个 report 我想在前台显示 每个 report里包含的<seqid>  里的值,<phone>里的值等等。
      

  6.   

    var lists = ds.Tables["report"];
    这句话就是把所有report节点拿出来,至于你要显示<seqid> or <phone>完全可以继续lists....操作撒
      

  7.   

    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();
            }
      

  8.   

    读取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;
    }
      

  9.   

    对了,我的xml是通过webservice返回的xml文档,ds.ReadXml(Server.MapPath("report.xml"))这里面的地址怎么写呢
    这个是调用webservice的方法:
    XDTWebService  xdt = new XDTWebService();
    String xml = xdt. GetReports("user", "pwd");
      

  10.   

    对了,我的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();
            }
      

  11.   


                MemoryStream stream = new MemoryStream(array);  
                StreamReader reader = new StreamReader(stream); 这一行多余的可以删掉  直接将stream传给ds
     
                //dataset 读取stream
                ds.ReadXml(stream);
      

  12.   

    var     rootE = XDocument.Load(path);
    var query = from c in rootE .Descendants("report")
                        select c;