C#操作XML之读取XML

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);
                }
            }
        }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值