我从 Web 服务请求一个非常大 (>500mb) 的 xml 文件,并将其内容ResponseStream
直接写入FileStream
. 但是当我打开生成的 xml 文件时,内容如下所示:
<Changes requestChangeTrackingId="-1" resultChangeTrackingId="2387">
<Selectors>
<Selector selectorId="1"><DateValidFrom>2000-01-01T00:00:00</DateValidFrom><DateValidTo>2099-12-31T00:00:00</DateValidTo><Code20Z>01A</Code20Z><CodeNUM/><CodeENT>1</CodeENT><ShortName>01A</ShortName></Selector>
<Selector selectorId="2"><DateValidFrom>2000-01-01T00:00:00</DateValidFrom><DateValidTo>2099-12-31T00:00:00</DateValidTo><Code20Z>01B</Code20Z><CodeNUM/><CodeENT>2</CodeENT><ShortName>01B</ShortName></Selector>
我如何格式化流,使其看起来像这样:
<Changes requestChangeTrackingId="-1" resultChangeTrackingId="2387">
<Selectors>
<Selector selectorId="1">
<DateValidFrom>2000-01-01T00:00:00</DateValidFrom>
<DateValidTo>2099-12-31T00:00:00</DateValidTo>
<Code20Z>01A</Code20Z>
<CodeNUM/>
<CodeENT>1</CodeENT>
<ShortName>01A</ShortName>
</Selector>
[...]
我无法将整个文件加载到内存中,因此无法使用类似的解决方案
XDocument.Load( responseStream ).Save( "somefile.xml" );
有没有办法将流传递到某种 XmlStreamFormatter 并将流直接写入文件系统?要存储的文件可能非常大,以至于不可能总是将整个流加载到内存中并在那里格式化。