遍历文件夹内所有xml文件

本文介绍了一种使用C#编程语言批量读取指定目录下所有XML文件的方法,并在满足特定条件时向这些文件中插入新的XML元素。具体而言,当遇到活动代码名为WAIT且资源节点为空时,会自动创建并插入DefaultSelectUsers和Resources节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 XmlDocument xdoc = new XmlDocument();
            string strDirlist = this.txtName.Text;
            string outstring = "";
            DirectoryInfo thisOne = new DirectoryInfo(strDirlist);
            FileInfo[] fileInfo = thisOne.GetFiles();
            //循环xml文件
            foreach (FileInfo fi in fileInfo)
            {
                if (fi.Extension.ToUpper().ToString() == ".XML")
                {
                    xdoc.Load(strDirlist + "//" + fi.Name.ToString());
                    XmlNodeList nodelist = xdoc.SelectNodes("//Activity");
                    bool ss = false;
                    //循环每个文件的节点Activity
                    foreach (XmlNode node in nodelist)
                    {
                        XmlNode node1 = node.SelectSingleNode("CodeName");
                        XmlNode node2 = node.SelectSingleNode("Resources");
                        if (node1.InnerText.ToString().ToUpper() == "WAIT" && node2 == null)
                        {
                            XmlNode node3 = node.SelectSingleNode("DefaultSelectUsers");
                            if (node3 == null)
                            {
                                XmlElement xe = xdoc.CreateElement("DefaultSelectUsers");
                                xe.InnerText = "True";
                                node.InsertAfter(xe, node1);
                                XmlElement xe1 = xdoc.CreateElement("Resources");
                                xe1.InnerXml = "<User key='' logonName='hengxing' />";
                                node.InsertAfter(xe1, xe);

                            }
                            else
                            {
                                node3.InnerText = "True";
                                XmlElement xe1 = xdoc.CreateElement("Resources");
                                xe1.InnerXml = "<User key='' logonName='hengxing' />";
                                node.InsertAfter(xe1, node3);
                            }
                            ss = true;
                            //  Response.Write(" <a   href= 'ss '   target= '_blank '> " + fi.Name.ToString() + " </a> " + " <br> ");
                        }

                    }
                    if (ss)
                    {
                        xdoc.Save(strDirlist + "//" + fi.Name.ToString());
                        ss = false;

                    }

同时要修改xml文件,文件必须非只读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值