Bir URl aracılığıyla 3 GB XML dosyasını okumaya çalışıyorum ve tüm işleri veri kümesinde saklıyorum. XML şöyle görünür:DataSet üzerinde büyük XML yükleniyor (OutOfMemory Exception)
<?xml version="1.0"?>
<feed total="1621473">
<job>
<title><![CDATA[Certified Medical Assistant]]></title>
<date>2016-03-25 14:19:38</date>
<referencenumber>2089677765</referencenumber>
<url><![CDATA[http://www.jobs2careers.com/click.php?id=2089677765.1347]]></url>
<company><![CDATA[Broadway Medical Clinic]]></company>
<city>Portland</city>
<state>OR</state>
<zip>97213</zip>
</job>
<job>
<title><![CDATA[Certified Medical Assistant]]></title>
<date>2016-03-25 14:19:38</date>
<referencenumber>2089677765</referencenumber>
<url><![CDATA[http://www.jobs2careers.com/click.php?id=2089677765.1347]]></url>
<company><![CDATA[Broadway Medical Clinic]]></company>
<city>Portland</city>
<state>OR</state>
<zip>97213</zip>
</job>
</feed>
Bu benim kod
XmlDocument doc = new XmlDocument();
doc.Load(url);
DataSet ds = new DataSet();
XmlNodeReader xmlReader = new XmlNodeReader(doc);
while (xmlReader.ReadToFollowing("job"))
{
ds.ReadXml(xmlReader);
}
olduğu Ama ciltli istisna dışında hafızası var. google üzerine Gözatılacak ve bu bulundu: hala
DataSet ds = new DataSet();
FileStream filestream = File.OpenRead(url);
BufferedStream buffered = new BufferedStream(filestream);
ds.ReadXml(buffered);
aynı istisna. Ben de XmlTextReader hakkında okudum ama benim durumumda bunu nasıl kullanacağımı bilmiyorum. Neden istisna alıyorum biliyorum ama nasıl üstesinden geleceğini bilmiyorum.Teşekkürler
Özel durum ayrıntıları nedir? Ben 'OutOfMemoryException' atıyor XmlDocument olabilir şüpheli. Bunun nedeni, büyük bir XML dosyası oluşturmak için bazı kodları bir araya getirdiğimden ve yeterli veri üretmeden önce, oluşturduğum XmlDocument nesnesinin atmasıdır. Belki de düğümlerin iç koleksiyonu ile ilgilidir ({System.Collections.ListDictionaryInternal.NodeKeyValueCollection}). – Stringfellow
Ne çıktı istiyorsunuz? Anlamıyorum "tüm işleri boğaz". –
@MichaelKay: Benim kötü, düzenlenmiş. Tüm işleri veri kümesinde saklamak istiyorum, böylece hepsini bir veritabanı tablosunda saklayabilirim. – Iman