大侠们,我现在需要将xml文件里的信息显示到datagridview, 我的xml 文件结构如下:
- <Employees>
- <NO1>
  <Name>Ma Jin Hu</Name> 
  <ZIP>333</ZIP> 
  <Address>Feng Huang Street</Address> 
  <City>Chu Zhou City</City> 
  <State>ANHUI</State> 
  </NO1>
- <NO2>
  <Name>Wang Tian</Name> 
  <ZIP>239</ZIP> 
  <Address>Lang Ya Street</Address> 
  <City>He Fei City</City> 
  <State>ANHUI</State> 
  </NO2>
- <NO3>
  <Name>Zou Wen Biao</Name> 
  <ZIP>100</ZIP> 
  <Address>Sai Di Street</Address> 
  <City>Bei Jin City</City> 
  <State>Bei Jin</State> 
  </NO3>
  </Employees>
我需要根据zip大小将信息显示到不同datagridview. 例如zip<200显示到datagridview 1,其他的显示到datagridview2. 
有些帖子说需要用xpath,本人从未使用过C#希望高手能指点下。 
万分感谢!XMLDataGridViewC#XPath

解决方案 »

  1.   

    你创建一个跟XML文档结构一样的实体类 保存XMl文档里面 读取出来的内容。根据不同的Zip放到不同的List里面 绑定到不同的DataGridView
      

  2.   

    谢谢 huangweifmm,
    能不能请你给我些链接或者资料什么的,由于我对C#不熟悉,不太理解你说的什么意思...什么是实体类,如何保存...你是指XAML 吗
      

  3.   

    DataTable现成有方法可以加载XML的
      

  4.   

    <Employees>
    - <NO1>
      <Name>Ma Jin Hu</Name> 
      <ZIP>333</ZIP> 
      <Address>Feng Huang Street</Address> 
      <City>Chu Zhou City</City> 
      <State>ANHUI</State> 
      </NO1>
    - <NO2>
      <Name>Wang Tian</Name> 
      <ZIP>239</ZIP> 
      <Address>Lang Ya Street</Address> 
      <City>He Fei City</City> 
      <State>ANHUI</State> 
      </NO2>
    - <NO3>
      <Name>Zou Wen Biao</Name> 
      <ZIP>100</ZIP> 
      <Address>www.lswjsdc.com</Address> 
      <City>Bei Jin City</City> 
      <State>Bei Jin</State> 
      </NO3>
      </Employees>我看到上面的代码头都要昏了,好久没接触了。
    导入方法很多,我以前也弄过,但是都忘记了,百度上有很多资料,自己看看自己参透,这样印象深刻点
      

  5.   

    谢谢大家,DataTable 我只能做到把所有数据全部倒入到datagridview,不能根据Zip值,分开到不同Datagridview...
    zhang308337299 ...我在网上看了很多资料,但是大部分都做不到有选择的输出,就像Datatable...
    你以前做过,能不能稍微看下?我已经看了好多东西,花了好多时间,不能再拖了
    谢谢 
      

  6.   

    huangweifmn  你好,好像你说的方法是可行的,能不能请你给我些例子什么的? 谢谢啦!
     
      

  7.   


                    DataTable dTable = new DataTable();//新建一个table
                    dTable.Columns.Add("表 名", Type.GetType("System.String"));//新建列
                    string openFileName = openFileDialog.FileName;//记录打开的文件名
                    XmlDocument doc = new XmlDocument();//读取Xml文件并显示到gridDataView中
                    doc.Load(openFileName);//读取指定位置的Xml文件
                    XmlNode dSet = doc.SelectSingleNode("NewDataSet");
                    XmlNodeList dt = dSet.SelectNodes("Table1");
                    foreach (XmlNode tnode in dt)
                    {
                        DataRow dRow = dTable.NewRow();//新建一列
                         dRow["表 名"] = tnode.SelectSingleNode("字段名").InnerText;//输入具体列数据
                            dTable.Rows.Add(dRow);//添加此列                }
      

  8.   

    参考http://bbs.csdn.net/topics/390017085
      

  9.   

     谢谢大家, 我找到了这段代码》 
                       DataSet ds = new DataSet();
                    ds.ReadXml(strPath);
                    DataTable dt = new DataTable();
                    DataTable dt1 = new DataTable();
                        for (int i = 0; i < ds.Tables.Count; i++)
                    {
                        if (Convert.ToInt32(ds.Tables[i].Rows[0]["ID"].ToString()) < 12000)
                        {
                            dt.Merge(ds.Tables[i]);
                        }
                        else
                                                    {
                                dt1.Merge(ds.Tables[i]);
                            }
                    }
                    dataGridView5.DataSource = dt;
                    dataGridView6.DataSource = dt1;
    不知道对不对,但是现在有个错误: Column 'ID' does not belong to table ExternalCommunication.
    请问有谁知道这是怎么回事吗
    谢谢大家了!
      

  10.   


    Kim_Du 
    你好,
    我按照你说的改了,还是一样的错误。请问你觉得这会不会因为我的ID 是第四个childnode 的原因? 
    现在毫无头绪,希望你帮我看看! 万分感谢!