TreeView加载XML:
加载的Xml文档如下:
已知有一个XML文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
效果如下:
public void CreateTreeView()//加载“book.xml”文档
{
try
{
XmlDocument xmldoc = new XmlDocument();//创建空文档
xmldoc.Load(Directory.GetCurrentDirectory() + @"/中药详细资料" + ".xml");//下载要实现树状的xml文档
treeView1.Nodes.Clear();//清空
treeView1.Nodes.Add(new TreeNode(xmldoc.DocumentElement.Name));//加入根节点
TreeNode tNode = new TreeNode();//生成一个树节点对象
tNode = treeView1.Nodes[0];//获取当前xml节点
addTreeNode(xmldoc.DocumentElement, tNode);
treeView1.ExpandAll();//展开
}
catch
{
}
}
private void addTreeNode(XmlNode xmlNode, TreeNode treeNode)
{
XmlNode xNode;//存放xml节点
TreeNode tNode;//存放树节点
XmlNodeList xNodeList;//存放节点集合(这里是所有子节点的集合)
if (xmlNode.HasChildNodes)//判断是否有子节点
{
xNodeList = xmlNode.ChildNodes;//子节点集合
for (int i = 0; i <= xNodeList.Count - 1; i++)
{
xNode = xmlNode.ChildNodes[i];//获取当前子节点
treeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = treeNode.Nodes[i];//获取当前树节点
addTreeNode(xNode, tNode);//递归
}
}
else
treeNode.Text = xmlNode.OuterXml.Trim();
//如果节点没有子节点,则该节点的Text=该节点的所有内容,包括标签和InnerText。
}