我有一个WebResponse.GetResponseStream
,它可以为我提供一个字符串(XML文件)。现在,我只需要一个携带数据的XML节点(好吧,我也需要其他一些节点)。现在,我可以将流作为XML文件保存。之后,我需要对其进行解析,从节点中提取数据,然后将其保存为文件再次。然后,我将base64解码此文件,然后保存真实的文件再次。
对于我想使用最小可能的内部内存(RAM)的所有方法。飞行上的所有操作都会在更大的文件上快速减少内存,也可能导致不可存储的问题。在上面描述的我的想法中,我会编写多个文件以提取数据。这可以一步一步完成,以便根本只写一个文件?尽管主要的要求是尽可能高效(RAM)。也许只需要一个小缓冲区,但不需要两倍或三倍的内存。
使用xmlreader
string xml = ""; //put your string input here
StringReader reader = new StringReader(xml);
XmlReader xreader = XmlReader.Create(reader);
使用xmlreader是正确的...但是您不想将其加载到'字符串'中。相反,XMLReader旨在从流中读取良好的读取。使用XMLReader.Create(YoursTream)。