将xml文档读入树状视图c#
我正在尝试将xml文件读入C#上的treeview结构。Treeview应该将根节点显示为“Students”,并在该节点下显示每个student编号,该编号扩展为学生的所有其他详细信息。我不确定如何正确执行此操作并整合课程表将xml文档读入树状视图c#,c#,xml,treeview,C#,Xml,Treeview,我正在尝试将xml文件读入C#上的treeview结构。Treeview应该将根节点显示为“Students”,并在该节点下显示每个student编号,该编号扩展为学生的所有其他详细信息。我不确定如何正确执行此操作并整合课程表 我编写了XML文件编码(文件名ReadXml),如下所示: <?xml version="1.0" encoding="UTF-8"?> <STUDENTS> <Course> <ID>2</ID&g
我编写了XML文件编码(文件名ReadXml),如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<STUDENTS>
<Course>
<ID>2</ID>
<Course_Name>Bcom Acounting</Course_Name>
<Course_Description>For Accountants</Course_Description>
</Course>
<Course>
<ID>3</ID>
<Course_Name>Engineering</Course_Name>
<Course_Description>For students not liking the social</Course_Description>
</Course>
<Course>
<ID>1</ID>
<Course_Name>Bcom Informatics</Course_Name>
<Course_Description>Business Computer Science</Course_Description>
</Course>
<Students>
<ID>1</ID>
<Name>Henk</Name>
<Initials>HW</Initials>
<Surname>Pretorius</Surname>
<StudentNumber>91404411</StudentNumber>
<YearOfRegistration>2014</YearOfRegistration>
<Gender>M</Gender>
<Course>1</Course>
</Students>
<Students>
<ID>2</ID>
<Name>Jane</Name>
<Initials>JL</Initials>
<Surname>Hlope</Surname>
<StudentNumber>22223333</StudentNumber>
<YearOfRegistration>2014</YearOfRegistration>
<Gender>F</Gender>
<Course>1</Course>
</Students>
<Students>
<ID>3</ID>
<Name>Samuel</Name>
<Initials>SM</Initials>
<Surname>Klopper</Surname>
<StudentNumber>12341233</StudentNumber>
<YearOfRegistration>2014</YearOfRegistration>
<Gender>M</Gender>
<Course>2</Course>
</Students>
<Students>
<ID>4</ID>
<Name>Sue</Name>
<Initials>SS</Initials>
<Surname>Callahan</Surname>
<StudentNumber>12333222</StudentNumber>
<YearOfRegistration>2014</YearOfRegistration>
<Gender>F</Gender>
<Course>2</Course>
</Students>
<Students>
<ID>5</ID>
<Name>Koos</Name>
<Initials>KK</Initials>
<Surname>Klopper</Surname>
<StudentNumber>12334455</StudentNumber>
<YearOfRegistration>2014</YearOfRegistration>
<Gender>M</Gender>
<Course>1</Course>
</Students>
</STUDENTS>
2.
Bcom会计
会计师
3.
工程类
对于不喜欢社交活动的学生
1.
Bcom信息学
商业计算机科学
1.
亨克
硬件
普雷托里厄斯
91404411
2014
M
1.
2.
简
JL
赫洛普
22223333
2014
F
1.
3.
塞缪尔
性虐待
克洛普
12341233
2014
M
2.
4.
控告
党卫军
卡拉汉
12333222
2014
F
2.
5.
库斯
KK
克洛普
12334455
2014
M
1.
我在C#中使用的方法如下:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "Open XML Document";
dlg.Filter = "XML Files (*.xml)|*.xml";
dlg.FileName = "ReadXml.xml";
if (dlg.ShowDialog() == DialogResult.OK)
{
try
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(dlg.FileName);
treeView1.Nodes.Clear();
treeView1.Nodes.Add(new TreeNode(xDoc.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = (TreeNode)treeView1.Nodes[0];
addTreeNode(xDoc.DocumentElement, tNode);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void addTreeNode(XmlNode xmlNode, TreeNode treeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList xNodeList;
if (xmlNode.HasChildNodes)
{
xNodeList = xmlNode.ChildNodes;
for (int x = 0; x <= xNodeList.Count -1; x++)
{
xNode = xmlNode.ChildNodes[x];
treeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = treeNode.Nodes[x];
addTreeNode(xNode, tNode);
}
}
else
treeNode.Text = xmlNode.OuterXml.Trim();
}
private void按钮1\u单击(对象发送者,事件参数e)
{
OpenFileDialog dlg=新建OpenFileDialog();
dlg.Title=“打开XML文档”;
dlg.Filter=“XML文件(*.XML)|*.XML”;
dlg.FileName=“ReadXml.xml”;
if(dlg.ShowDialog()==DialogResult.OK)
{
尝试
{
XmlDocument xDoc=新的XmlDocument();
加载(dlg.FileName);
treeView1.Nodes.Clear();
添加(新树节点(xDoc.DocumentElement.Name));
TreeNode tNode=新的TreeNode();
tNode=(TreeNode)treeView1.Nodes[0];
addTreeNode(xDoc.DocumentElement,tNode);
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
}
私有void addTreeNode(XmlNode XmlNode,TreeNode TreeNode)
{
xmlnodexnode;
三烯醇化物;
XmlNodeList xNodeList;
if(xmlNode.HasChildNodes)
{
xNodeList=xmlNode.ChildNodes;
对于(int x=0;x“没有带来我正在寻找的结果”并没有告诉我们全部情况。代码工作得很好。我会添加:treeView1.ExpandAll();如果不工作,则检查按钮是否工作正常。可能会删除按钮并再次添加,包括代码。