首页 > 解决方案 > 在 C# 中替换 xml 字符串时出错

问题描述

我正在尝试替换每个文件中数据标签的内容,但出现错误“System.ArgumentException:'字符串不能为零长度。参数名称:oldValue'”(*“数据”标签包含多行 base64 编码字符串)

这是我的代码:

var regex = new Regex("<data>([\\s\\S]*?)<\\/data>\r\n", RegexOptions.Multiline);
var main1 = Directory.GetFiles(main1path, "demo.xml", SearchOption.AllDirectories).OrderBy(x => x).ToArray();
var main2 = Directory.GetFiles(main2path, "demo.xml", SearchOption.AllDirectories).OrderBy(x => x).ToArray();
for (var i = 0; i < Math.Min(main1.Length, main2.Length); i++)
{
    var demo1path = main1[i];
    var demo2path = main2[i];
    var demo1 = File.ReadAllText(demo1path);
    var demo2 = File.ReadAllText(demo2path);
    var data1 = regex.Match(demo1);
    var data2 = regex.Match(demo2);
    File.WriteAllText(demo1path, demo1.Replace(data1.Value, data2.Value));
}

标签: c#xml

解决方案


推荐阅读