XML的操作有两种方式:
1、通过XmlDocument方式,此种方式是标准的DOM方式,支持.NET2.0
2、XDocument方式。
如果不了解写入操作的盆友可以阅读XML写入操作这篇文章
接下来就通过XmlDocument和XDocument两种方式实现XML读取。
通过递归方式把XML文档加载到treeview上
通过XDocument方式加载
XDocument xDocument = XDocument.Load("rss_sportslq.xml");//加载XML文件
XElement rootName = xDocument.Root;//获取父节点
TreeNode treeNode = treeView1.Nodes.Add(rootName.Name.ToString());//把父节点加载到treeview父节点
LoadXmlToTreeView(rootName, treeNode);//递归加载treeview
private void LoadXmlToTreeView(XElement rootName, TreeNode treeNode)
{
foreach (XElement item in rootName.Elements())
{
if (item.Elements().Count() == 0)
{
treeNode.Nodes.Add(item.Name.ToString()).Nodes.Add(item.Value);
}
else
{
TreeNode node = treeNode.Nodes.Add(item.Name.ToString());
LoadXmlToTreeView(item, node);
}
}
}
通过XmlDocument加载
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("rss_sportslq.xml");
XmlElement rootElement = xmlDoc.DocumentElement;
TreeNode treeViewCollection=treeView1.Nodes.Add(rootElement.Name);
LoadXmlToTreeViewByXmlDocument(rootElement, treeViewCollection.Nodes);
private void LoadXmlToTreeViewByXmlDocument(XmlElement rootElement, TreeNodeCollection treeNodeCollection)
{
foreach (XmlNode item in rootElement)
{
if (item.NodeType==XmlNodeType.Element)
{
TreeNode node=treeNodeCollection.Add(item.Name);
LoadXmlToTreeViewByXmlDocument((XmlElement)item, node.Nodes);
}
else if(item.NodeType==XmlNodeType.CDATA||item.NodeType==XmlNodeType.Text)
{
treeNodeCollection.Add(item.InnerText);
}
}
}