<?xml version="1.0" encoding="utf-8" ?>
<NewDataSet>
  <Table>
    <node ID="1" 书籍名称="语文" 书籍类别="教育" 进货数量="30" 库存数量="10" />
    <node ID="2" 书籍名称="英语" 书籍类别="教育" 进货数量="20" 库存数量="20" />
    <node ID="3" 书籍名称="数学" 书籍类别="教育" 进货数量="10" 库存数量="30" />
  </Table>
</NewDataSet>
求C#代码

解决方案 »

  1.   

    PS:不知道我写的XML格式是否正确,刚接触XML
      

  2.   

    用dateset读取XML  再把dateset给datagridview不就行了!
      

  3.   


    // 创建 DataSet 对象
                    DataSet myDS = new DataSet();
                    // 将 XML 文件读入 DataSet
                    myDS.ReadXml(Server.MapPath("people.xml"));
                    // 绑定到 DataGrid
                    DataGrid1.DataSource = myDS.Tables[0];
                    DataGrid1.DataBind(); 
      

  4.   

    建议 数据侧 业务逻辑层 展示层 之间 禁止用DataSet DataTable 传递数据 
    自己建立对象(DTO)来传递数据
      

  5.   

    现在的XML格式用DataTable.ReadXML是读不出来的。格式本身没有错,但不是DataTable所支持的那种。可以考虑用linq:string xmlPath = @"XML路径";
    XDocument xdoc = XDocument.Load(xmlPath);
    var query = from n in xdoc.Descendants("node")
                select new
                {
                    ID = n.Attribute("ID").Value,
                    书籍名称 = n.Attribute("书籍名称").Value,
                    书籍类别 = n.Attribute("书籍类别").Value
                };
    // 可以直接绑定
    dataGridView1.DataSource = query.ToList();另外建议在xml节点/属性的命名最好用英文。
    如果xml结构是你自己定义的话,你可以修改下,以支持DataTable.ReadXML。比如:
    <?xml version="1.0" standalone="yes"?>
    <NewDataSet>
      <TableName>
        <ID>1</ID>
        <BookName>a</BookName>
        <BookCategory>b</BookCategory>
      </TableName>
      <TableName>
        <ID>1</ID>
        <BookName>a</BookName>
        <BookCategory>b</BookCategory>
      </TableName>
    </NewDataSet>
      

  6.   

    格式不能变,出了linq还有别的方式么 
      

  7.   

    当然还有别的方式: XmlDocument+XPath, XmlReader 也可以读Xml