我有一个WebResponse.GetResponseStream
可以为我提供一个字符串(XML文件)。现在我只需要一个携带数据的XML节点(好吧我也需要一些其他节点)。我现在可以将流保存为XML文件。之后我需要解析它,从节点中提取数据并将其另存为文件 。然后我将base64解码此文件并再次保存真实文件 。
对于我想要使用尽可能少的内部存储器(RAM)的所有内容。即时执行所有操作会在较大文件上快速降低内存,并且还可能导致内存不足问题。在我上面描述的想法中,我写了多个文件来提取数据。这可以一步完成,以便只写一个文件吗?虽然主要要求是作为内存(RAM)尽可能高效。也许只需要一个小缓冲区,但不需要内存加倍或三倍。
答案 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)。