我想創建一個C#控制檯應用程序來獲得大約1000000行數據。如何獲取1000000條記錄並將xml訂閱源寫入文件?
在代碼中添加一些過濾邏輯並生成XML feed。
我正在使用的那個工作正常,但對於250K行的數據,比我的內存異常異常。
以下是我在Web應用程序中使用的代碼示例,我需要將其更改爲控制檯應用程序並使其高效。
var xrFeed = new XmlTextWriter(File.Create(@"c:\Items.xml"), Encoding.UTF8);
xrFeed.WriteStartDocument();
xrFeed.WriteStartElement("Name");
IEnumerable<ItemClass> items = _source.GetItems();
if (items != null)
{
foreach (var i in items)
{
xrFeed.WriteStartElement("ad");
xrFeed.WriteStartElement("id");
xrFeed.WriteCData(m.ListingId.ToString());
xrFeed.WriteEndElement();
xrFeed.WriteStartElement("firstParameter");
xrFeed.WriteCData("parameter");
xrFeed.WriteEndElement();
xrFeed.WriteStartElement("secondParameter");
xrFeed.WriteCData("parameter2");
xrFeed.WriteEndElement();
xrFeed.WriteStartElement("thirdParameter");
xrFeed.WriteCData("parameter3");
xrFeed.WriteEndElement();
xrFeed.WriteEndElement();
}
xrFeed.WriteEndElement();
xrFeed.WriteEndDocument();
xrFeed.Flush();
xrFeed.Close();
Response.End();
DataBind();
}
嘗試在foreach循環中移動刷新 – Reniuz 2011-05-27 14:27:54
您使用的是什麼版本的.NET?你完全不應該使用新的XmlTextWriter()(從.NET 2.0開始),並且你可能會更好地使用LINQ to XML來使用[XStreamingElement](http://msdn.microsoft.com/zh-cn/library/ system.xml.linq.xstreamingelement.aspx)。 – 2011-05-27 14:28:25
你從哪裏得到OOM異常?循環訪問數據行或讀取數據時?什麼是'_source'? – CodingWithSpike 2011-05-27 14:34:54