Вы пытались загрузить из потока, а не из строки (это отличается от записи в поток, потому что в вашем примере вы все еще пытаетесь загрузить все это сразу в память с XmlDocument)?
Существуют и другие компоненты .NET для файлов XML, которые работают с XML в виде потока, а не загружают его все сразу.Проблема в том, что .LoadXML, вероятно, пытается обработать весь документ одновременно, загружая его в память.Мало того, но вы уже загрузили его в строку, поэтому он существует в двух разных формах в памяти, что еще больше увеличивает вероятность того, что вам не хватит свободной непрерывной памяти.
Вам нужны некоторыеспособ прочитать его в виде потока в поток через XmlReader, так что вы можете начать чтение XML-документа по кусочкам, не загружая все это в память.Конечно, у этого подхода есть ограничения, потому что XmlReader предназначен только для пересылки и только для чтения, и будет ли он работать, зависит от того, что вы хотите делать с XML после его загрузки.