Как конвертировать огромные XML-файлы в JSON в многопользовательской среде параллелизма без насыщения оперативной памяти?

#c# #.net-core #server #multi-user #xml-to-json

Вопрос:

Я столкнулся с проблемой преобразования XML-файла в JSON со следующим кодом:

 Console.WriteLine("Start");

string inputPath = "input.xml";

// Load XML document
XmlDocument doc = new XmlDocument();
doc.Load(inputPath);

string outputPath = "output.json";
File.WriteAllText(outputPath, JsonConvert.SerializeXmlNode(doc));

Console.Write("End");

Console.ReadKey();
 

Файл заполняет память, и это проблема. Я не нашел решения без заполнения оперативной памяти.

Как я могу этого добиться? Большое спасибо

Комментарии:

1. Насколько велик XML-файл?

2. Мне нужно конвертировать неизвестные файлы json на сервере, поэтому производительность очень важна. Я не нашел решения по ссылке, которую вы отправили.

3. Я ищу решение с помощью XmlReader или чего-то в этом роде.

4. Мне нужно конвертировать много файлов для моих пользователей. Можете ли вы представить, как конвертировать файл объемом 1 ГБ для 1000 пользователей одновременно? Для этого требуется 1000 ГБ оперативной памяти. Это безумие! Это неприемлемо

5. Хорошо, я вижу, вы находитесь на веб-сервере или мэйнфрейме, который поддерживает 1000 запросов одновременно? Я не знаю XmlReader и не знаю, может ли он совпадать, поэтому см., например zetcode.com/csharp/xmlreader и csharp.net-tutorials.com/xml/…