Мне очень хотелось бы, чтобы XML правильно писал, но файл приходит к нам от третьего лица, у которого нет контроля над , (Они другой поставщик нашего клиента)C# Цитирование через каталог, поиск XML в каждом каталоге и, если & present заменить на & - Сохранить
Так с этим в виде: Они посылают нам почтовый индекс папок и вложенных папки (в каждом из вложенных папок там будет XML) XML, который они посылают у нас есть & вместо & amp (каждый & такой, но не каждый XML будет иметь &); Используя мой код, я могу (на консоли, по крайней мере) цикл по каждому из подлодки, найти XML, найти строку с & (если есть) и изменить его на &
foreach (string d in Directory.GetFiles(targetDirectory, "*.xml", SearchOption.AllDirectories))
{
Console.WriteLine(d);
String[] lines = File.ReadAllLines(d);
for (int i = 0; i < lines.Length; i++)
{
if (lines[i].Contains("&"))
{
string line = lines[i];
line = line.Replace("&", "&");
Console.WriteLine(line);
}
}
}
В последнем "еЫп (линия);" он показывает, что & изменен (по крайней мере, в памяти), но когда я использую «System.IO.File», если все еще заполняется оригиналом &.
Вы пишете оригинальные строки перейдите в новый файл. Попробуйте 'lines [i] = line.Replace ...'. Существуют и другие проблемы с вашим кодом, например, тот факт, что вы повторяете все строки в файле на каждой итерации цикла. – Joe
Спасибо Joe, System.IO.File.WriteAllLines (d, lines); был ошибочным. Я удалил его там – user001