Как изменить кодировку XML-файла? - C#
Формулировка задачи:
Добрый день! Подскажите, как изменить кодировку xml-файла
Этот код работает правильно, но только если я в самом файле вручную изменю кодировку с utf-8 на windows-1251, однако нужно, чтобы код работал именно с utf-8
Help!
XmlTextReader xmlReader1 = new XmlTextReader(file1);
xmlReader1.Encoding = "678";
xmlReader1.WhitespaceHandling = WhitespaceHandling.None;
XmlTextReader xmlReader2 = new XmlTextReader(file2);
xmlReader2.WhitespaceHandling = WhitespaceHandling.None;
int fullcount = 0;
var differentList = new List<string>();
while (xmlReader1.Read() && xmlReader2.Read())
{
if (xmlReader1.NodeType == XmlNodeType.Element & xmlReader1.AttributeCount > 0)
{
fullcount++;
if (xmlReader1.GetAttribute(0) != xmlReader2.GetAttribute(0))
{
differentList.Add(xmlReader1.Name);
}
}
}
Console.WriteLine("Проверено " + fullcount + " элементов.");
Console.WriteLine("Список несовпадающих элементов:");
foreach(string dif in differentList)
{
Console.WriteLine(dif);
}
Console.ReadLine();
пример xml-файла
<?xml version="1.0" encoding="utf-8"?>
<ТестовыеДанные>
<Фамилия value="Петров" />
<Имя value="Иван" />
<Отчество value="Иванович" />
<Пол value="Женский" />
<ДатаРождения value="01.01.1996" />
<УдостоверениеЛичности>
<Тип value="Паспорт РФ" />
<Номер value="7748321242" />
</УдостоверениеЛичности>
<АдресРегистрации>
<Регион value="Москва" />
<Район value="Воскресенское" />
</АдресРегистрации>
<Образование value="Высшее профессиональное" />
</ТестовыеДанные>
а вот и дельный совет для меня
FileStream stream1 = new FileStream(file1, FileMode.Open, FileAccess.Read);
StreamReader reader1 = new StreamReader(stream1, Encoding.GetEncoding(1251));
XmlTextReader xmlReader1 = new XmlTextReader(reader1);
xmlReader1.WhitespaceHandling = WhitespaceHandling.None;
FileStream stream2 = new FileStream(file2, FileMode.Open, FileAccess.Read);
StreamReader reader2 = new StreamReader(stream2, Encoding.GetEncoding(1251));
XmlTextReader xmlReader2 = new XmlTextReader(reader2);
xmlReader2.WhitespaceHandling = WhitespaceHandling.None;Решение задачи: «Как изменить кодировку XML-файла?»
textual
Листинг программы
StreamReader reader1 = new StreamReader(stream1, true);