我现在有一个xml文件,内容如下:
- <测试结果>
  - <测试1>
    - <a>
      <速度10kmh>11</速度10kmh> 
      <速度20kmh>11</速度20kmh> 
      <速度30kmh>11</速度30kmh> 
      <速度40kmh>11</速度40kmh> 
      </a>
    - <b>
      <速度10kmh>12</速度10kmh> 
      <速度20kmh>12</速度20kmh> 
      <速度30kmh>23</速度30kmh> 
      <速度40kmh>34</速度40kmh> 
      </b>
    </测试1>
  - <测试2>
    - <a>
      <速度10kmh>11</速度10kmh> 
      <速度20kmh>11</速度20kmh> 
      <速度30kmh>11</速度30kmh> 
      <速度40kmh>11</速度40kmh> 
      </a>
    </测试2>
</测试结果>
这里面的数据是个三维存储的:测试,<字母>,<速度>三个维度,我想用datagridview来显示里面的二维内容,譬如我现在确定了要显示测试1下的内容,以速度为列标题,字母为行标题绑定datagridview,同时还希望可以通过更改datagridview中的值来更新我的数据源,这该怎么实现啊?求助大侠们。
PS:我利用了个函数
        public DataView GetData(string XmlPathNode)
        {
            
            StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
            DataSet ds = new DataSet();
            ds.ReadXml(read);
            return ds.DefaultView;
        }
再把这个dataview作为数据源,通过XmlPath可以实现我的显示要求,但是更改的时候由于数据源不是整个xml文件,因此每次acceptchanges更新时都只剩下了当前的测试节点下的内容,就是说xml内容只留下了
  - <测试1>
    - <a>
      <速度10kmh>11</速度10kmh> 
      <速度20kmh>11</速度20kmh> 
      <速度30kmh>11</速度30kmh> 
      <速度40kmh>11</速度40kmh> 
      </a>
    - <b>
      <速度10kmh>12</速度10kmh> 
      <速度20kmh>12</速度20kmh> 
      <速度30kmh>23</速度30kmh> 
      <速度40kmh>34</速度40kmh> 
      </b>
    </测试1>
求大牛帮忙~

解决方案 »

  1.   

    更新的部分就直接写成了ds.acceptchanges();ds.writexml();我只想能显示并修改某一个节点下的所有数据
      

  2.   

    关注,把这个dataview作为数据源看来是不行的了。
      

  3.   

    最简单的办法  DataSet 有一个方法 readxml 把xml读取到DataSet 
    模拟出一个数据表   这样你操作表比操作这个好很多具体怎么做,,看你的了,,如果操作数据表 这种基础都不会的话 那就更应该用这个了
    DataSet 很常用  多熟悉熟悉有好处