我有一段代碼,它適用於正常的文件。但對於真正的大文件,它會使服務器停止工作。閱讀大型XML文件,使服務器停止工作 - 內存不足
這就是:
XmlReader reader = null;
try
{
reader = XmlReader.Create(file_name + ".xml");
XDocument xml = XDocument.Load(reader);
XmlNamespaceManager namespaceManager = GetNamespaceManager(reader);
XElement root = xml.Root;
//XAttribute supplier = root.XPathSelectElement("//sh:Receive/sh:Id", namespaceManager).Attribute("Authority");
//string version = root.XPathSelectElement("//sh:DocumentId/sh:Version", namespaceManager).Value;
var nodes = root.XPathSelectElements("//eanucc:msg/eanucc:transact", namespaceManager);
return nodes;
}
catch
{ }
我認爲這是導致其發生在服務器上的內存問題的一部分。我怎樣才能解決這個問題?
有多少個'transact'元素? (這可能甚至不可行...) – 2013-04-30 06:02:38
你能否告訴我們導致錯誤的文件的大小?它是單個文件還是多個大文件? – Jras 2013-04-30 06:07:10
@JonSkeet 8.000 – 2013-04-30 06:07:24