C# 从流中读取XML,提取节点,对其进行base64解码,并以所需的最小内存写入文件

C# 从流中读取XML,提取节点,对其进行base64解码,并以所需的最小内存写入文件,c#,xml,stream,base64,C#,Xml,Stream,Base64,我有一个WebResponse.GetResponseStream,它可以为我提供一个字符串(XML文件)。现在,我只需要一个XML节点来承载数据(好的,我还需要一些其他节点)。我现在可以将流保存为XML文件。之后,我需要解析它,从节点提取数据并再次将其保存为文件。然后我会对这个文件进行base64解码并再次保存真正的文件 对于所有这些,我希望使用尽可能少的内存(RAM)。在运行中执行所有操作会快速减少较大文件的内存,还可能导致内存不足问题。在我上面描述的想法中,我将编写多个文件来提取数据。这可

我有一个
WebResponse.GetResponseStream
,它可以为我提供一个字符串(XML文件)。现在,我只需要一个XML节点来承载数据(好的,我还需要一些其他节点)。我现在可以将流保存为XML文件。之后,我需要解析它,从节点提取数据并再次将其保存为文件。然后我会对这个文件进行base64解码并再次保存真正的文件

对于所有这些,我希望使用尽可能少的内存(RAM)。在运行中执行所有操作会快速减少较大文件的内存,还可能导致内存不足问题。在我上面描述的想法中,我将编写多个文件来提取数据。这可以在一个步骤中完成,以便只写入一个文件吗?尽管主要要求是尽可能提高内存(RAM)效率。也许只需要一个小的缓冲区,但不需要加倍或三倍的内存。

使用XMLReader

stringxml=”“//把你的字符串输入放在这里
StringReader=新的StringReader(xml);
XmlReader xreader=XmlReader.Create(reader);

使用XmlReader是正确的。。。但您不想将其加载到一个“字符串”中来执行此操作。相反,XmlReader被设计成从流中读取数据。使用XmlReader.Create(您的流)