XML到dataGridView c#

XML到dataGridView c#,c#,xml,datagridview,C#,Xml,Datagridview,我正在使用XML并将数据绑定到DataGridView 我有一个XML文件 <root> <setting id="1"> <name1>val1</name1> <name2>val2</name2> <name3>val3</name3> </setting> <setting id= "2">

我正在使用
XML
并将数据绑定到
DataGridView
我有一个XML文件

<root>
    <setting id="1">
        <name1>val1</name1>
        <name2>val2</name2>
        <name3>val3</name3>
    </setting>
    <setting id= "2">
        <name1>val1</name1>
        <name2>val2</name2>
        <name3>val3</name3>
    </setting>
    <setting id= "3">

    </setting>
</root>
我想要的是

name1  val1 
name2  val2  
name3  val3
我现在所做的是

//...
DataGridView1.DataSource = PopulateDataGrid();
//...


    public DataTable PopulateDataGrid()
    {
        DataSet dataSet = new DataSet();
        dataSet.ReadXml(SettingsXMLPath);
        return dataSet.Tables[0];
    } 
当我运行代码时,它为每个块生成行


我错过了什么

您的XML文件应该像这样来实现您想要的结果

<NewDataSet>
  <Table1>
    <Column1>Name1</Column1>
    <Column2>Value1</Column2>
  </Table1>
  <Table1>
    <Column1>Name2</Column1>
    <Column2>Value2</Column2>
  </Table1>
  <Table1>
    <Column1>Name3</Column1>
    <Column2>Value3</Column2>
  </Table1>
  <Table1>
    <Column1>Name4</Column1>
    <Column2>Value4</Column2>
  </Table1>
</NewDataSet>

名称1
价值1
姓名2
价值2
名字3
价值3
名字4
价值4

定义“每个块的行”。发生了你意想不到的事情。您认为会发生什么?假设每个设置块中有两个设置块,我有5个参数-->我得到3行(参数名称,id1,id2),每个块有5列,每个块只有2列(名称,值)和5行。这应该能帮到你。@Matthijs你能帮我吗?我就是不能绕着它转这在逻辑思维上是没有意义的。一个ID下的所有设置不应该都在相同的设置下吗?所以ID=1有3个值,ID=2有3个值等等。有没有办法把一种形式的XML转换成另一种形式?你说的一种形式的XML转换成另一种形式是什么意思?我不知道有什么内置的转换工具。我想如果你想重新安排数据,你必须手动进行。最好的方法是用原始数据填充DataGridView1,然后以您想要的格式将该数据传输到另一个DataGridView2,然后将其导出到XML文件。是的,我想应该是它。。。谢谢你帮我清理
<NewDataSet>
  <Table1>
    <Column1>Name1</Column1>
    <Column2>Value1</Column2>
  </Table1>
  <Table1>
    <Column1>Name2</Column1>
    <Column2>Value2</Column2>
  </Table1>
  <Table1>
    <Column1>Name3</Column1>
    <Column2>Value3</Column2>
  </Table1>
  <Table1>
    <Column1>Name4</Column1>
    <Column2>Value4</Column2>
  </Table1>
</NewDataSet>