• 一首歌可以循环一整天《我们都是好孩子》
  • 在别人眼里是逃避,其实是不想牵累任何人,做孤独的自己。
  • 也许有一天我会背着包,独自漂流。
  • 既然做了决定,就不后悔,再见昆明!
  • 愿闻世间百态。
  • 外表的一切如常,内心的混乱又有谁能了解!
  • 突然想回安徽工作了!
  • 该来的还是来了,Uzi宣布退役!
  • 国内疫情已完全控制住,但是国外疫情大爆发,现在开始限制人员入境。
  • 啊啊啊,IP被墙了,好烦!

C#修改XML文件内容

程序 愿闻世间百态 4年前 (2020-05-18 14:38:39) 8131次浏览 已收录 0个评论

二、代码实现
1、界面布局
C#修改 XML 文件内容

2、代码模块

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Threading;

namespace Change_XML
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void start_path_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog path = new FolderBrowserDialog();
            path.ShowDialog();
            this.text_path.Text = path.SelectedPath;
        }
        private void start_change_Click(object sender, EventArgs e)
        {
            string date_time = DateTime.Now.ToLongTimeString().ToString();
            string textpath = this.text_path.Text;
            try
            {
                if (string.IsNullOrEmpty(textpath) || string.IsNullOrEmpty(this.keyword.Text) || string.IsNullOrEmpty(this.find_text.Text) || string.IsNullOrEmpty(this.replace_text.Text)) //判断 textpath 是否为空
                {
                    string notice_text = "注意:请检查文件路径/替换文本/替换为是否均已填写...";
                    MessageBox.Show("注意:请检查文件路径/替换文本/替换为是否均已填写...", "提示");
                    this.list_logs.Items.Add(date_time + " ==> " + notice_text);
                    list_logs.TopIndex = list_logs.Items.Count - 1;//打印框显示最新信息。 
                }
                else
                {
                    DirectoryInfo dir = new DirectoryInfo(textpath);
                    var fileInfos = dir.GetFiles();
                    if (fileInfos.Length == 0)
                    {
                        string notice_text = "注意:该文件夹下没有文件!";
                        this.list_logs.Items.Add(date_time + " ==> " + notice_text);
                        list_logs.TopIndex = list_logs.Items.Count - 1;//打印框显示最新信息。
                        MessageBox.Show(notice_text, "提示"); 
                    }
                    else
                    {
                        int count_file = 0;
                        int count_all = 0;
                        foreach (var fileInfo in fileInfos)
                        {
                            string xml_path = this.text_path.Text + "/" + fileInfo.Name.ToString();
                            this.list_logs.Items.Add(date_time + " ==> " + xml_path);
                            list_logs.TopIndex = list_logs.Items.Count - 1;//打印框显示最新信息。
                            XmlDocument doc = new XmlDocument();
                            doc.Load(xml_path);
                            XmlNodeList xn = doc.SelectSingleNode("doc").ChildNodes;
                            foreach (XmlElement xn1 in xn)
                            {
                                XmlElement xe = (XmlElement)xn1;
                                this.list_logs.Items.Add(date_time + " ==> " + xe.Name.ToString());
                                list_logs.TopIndex = list_logs.Items.Count - 1;
                                
                                if( xe.Name.ToString() == this.keyword.Text )
                                {
                                    if (this.find_text.Text == "#all#")
                                    {
                                        xe.InnerText = this.replace_text.Text;
                                        count_file++;
                                    }
                                    else
                                    {
                                        string old_value = xe.InnerText;
                                        if (old_value.IndexOf(this.find_text.Text)>=0)
                                        {
                                            count_file++;
                                            string new_value = old_value.Replace(this.find_text.Text, this.replace_text.Text);
                                            xe.InnerText = new_value;
                                            this.list_logs.Items.Add(date_time + " ==> " + xe.InnerText);
                                            list_logs.TopIndex = list_logs.Items.Count - 1;
                                        } 
                                    } 
                                }
                            }
                            count_all++;
                            doc.Save(xml_path);
                            int.TryParse(this.sleep_time.Text, out int time_num);
                            Thread.Sleep(time_num); //休眠时间
                        }
                        string notice_text = "总计"+count_all+"个文件,已修改"+count_file+"个文件!";
                        this.list_logs.Items.Add(date_time + " ==> " + notice_text);
                        list_logs.TopIndex = list_logs.Items.Count - 1;//打印框显示最新信息。
                        MessageBox.Show(notice_text, "提示");
                    } 
                }
            }
            catch (Exception ex)
            {
                this.list_logs.Items.Add(date_time + " ==> " + ex.ToString());
                list_logs.TopIndex = list_logs.Items.Count - 1;//打印框显示最新信息。
                MessageBox.Show(ex.ToString(), "提示");
            }
        }
    }
}


三、效果显示
C#修改 XML 文件内容

四、下载地址

点击跳转百度云,提取码: k4s5


WECV.CN , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C#修改 XML 文件内容
喜欢 (0)
[]
分享 (0)

您必须 登录 才能发表评论!