C# 数据表的嵌套树(或XML)

C# 数据表的嵌套树(或XML),c#,xml,wpf,C#,Xml,Wpf,我有一个这样的嵌套XML文件 <students> <student id=1> <course cid=1 name="cse" /> <course cid=2 name="eee" /> <course cid=3 name="mech" /> <course cid=4 name="it" /> </studnet>

我有一个这样的嵌套XML文件

<students>
    <student id=1>
        <course cid=1 name="cse" />
        <course cid=2 name="eee" />
        <course cid=3 name="mech" />
        <course cid=4 name="it" />
    </studnet>
    <student id=2>
        <course cid=1 name="cse" />
        <course cid=2 name="eee" />
        <course cid=3 name="mech" />
        <course cid=4 name="it" />
    </studnet>
目前,我正在解析XML文件,并在树数据结构中增强它

class Node{
    string Text;
    List<Attribute> Attributes;
    List<Node> Children;
}
class Attribute{
    string name;
    string value;
}
类节点{
字符串文本;
列出属性;
列出儿童名单;
}
类属性{
字符串名;
字符串值;
}
我可以解析XML并将其存储在任何数据结构中。XML文件可以有任何格式和属性,这就是为什么我使用了Attribute类型的子类,而没有为类定义特定属性(id、CI等)


知道如何将从XML创建的树转换为datatable吗。我计划将此datarable绑定到datagrid并再次将其保存到XML中。

要将XML绑定到datatable,可以使用

DataTable dt = new DataTable();
 dt.ReadXml();

看看其中一些简单的示例,它们将类序列化为XML和XML之间的对象。此示例返回一个列表,该列表可用于DataGrid的数据源

此示例演示如何将DataGrid的DataSource设置为DataSet


您可以使用
XmlDataProvider
将XML直接绑定到datagrid。如何使用
dt.ReadXml()自动读取
XML
数据?您好,ReadXML方法有4个重载,您可以使用其中任何一个将XML文件加载到Datatable
DataTable dt = new DataTable();
 dt.ReadXml();