Как изменить кодировку 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы