从流中读取XML,提取节点,base64对其进行解码并写入需要最少内部存储器的文件

时间:2015-05-05 21:50:06

标签: c# xml stream base64

我有一个WebResponse.GetResponseStream可以为我提供一个字符串(XML文件)。现在我只需要一个携带数据的XML节点(好吧我也需要一些其他节点)。我现在可以将流保存为XML文件。之后我需要解析它,从节点中提取数据并将其另存为文件 。然后我将base64解码此文件并再次保存真实文件

对于我想要使用尽可能少的内部存储器(RAM)的所有内容。即时执行所有操作会在较大文件上快速降低内存,并且还可能导致内存不足问题。在我上面描述的想法中,我写了多个文件来提取数据。这可以一步完成,以便只写一个文件吗?虽然主要要求是作为内存(RAM)尽可能高效。也许只需要一个小缓冲区,但不需要内存加倍或三倍。

2 个答案:

答案 0 :(得分:1)

使用XMLReader

            string xml = "";  //put your string input here
            StringReader reader = new StringReader(xml);
            XmlReader xreader = XmlReader.Create(reader);
​

答案 1 :(得分:1)

使用XmlReader是正确的......但是你不想将它加载到'字符串'来执行它。相反,XmlReader旨在从流中读取就好了。使用XmlReader.Create(yourStream)。