我在HTTP響應中接收XML。我想用XmlReader解析它,因爲它相當大並且有許多子節點。但同時我希望能夠將整個XML保存到一個文件中。使用XmlReader讀取XML時保存XML文件
如何在不首先將整個XML讀取到內存緩衝區的情況下執行此操作?
另外,我並不總是將XML解析爲最後一個元素,但我需要保存整個XML。
謝謝
我在HTTP響應中接收XML。我想用XmlReader解析它,因爲它相當大並且有許多子節點。但同時我希望能夠將整個XML保存到一個文件中。使用XmlReader讀取XML時保存XML文件
如何在不首先將整個XML讀取到內存緩衝區的情況下執行此操作?
另外,我並不總是將XML解析爲最後一個元素,但我需要保存整個XML。
謝謝
,如果我沒看錯,你可以使用XmlWriter.WriteNode方法,
XmlTextWriter empwriter = new XmlTextWriter();
//Write the start tag.
empwriter .WriteStartElement("Employee");
//Write the first employee.
empwriter .WriteNode(reader, false);
//all your elements..
//Write the last employee.
empwriter.WriteNode(reader, false);
empwriter.WriteEndElement();
您可以根據需要創建一個Streamwriter並逐個節點地進行寫入。
using (StreamWriter writer = new StreamWriter("file.txt"))
{
//Start loop to read XML here
writer.Write("XML node you want to write");
// Loop ends
}
如果您想要在本地保存整個文件,則沒有其他方式將其全部下載到您的代碼運行的機器上。如果你加載到中間只是爲了節省帶寬,你如何想象將它全部保存在磁盤上?!?! –
@DavidePiras XmlReader使用Stream讀取XML。我認爲可能在用XmlReader讀取響應的同時編寫響應的內容。在平行下。如果我停下來在中間用XmlReader讀取文件,那麼我希望能夠保存其餘部分。我想使用XmlReader不是爲了節省帶寬,而是爲了解析速度和內存(因爲XmlReader不需要將整個XML加載到內存中) – CITBL
您如何準確接收數據? –