我正在處理大型XML文件,並且在運行應用程序時,XmlTextReader.ReadOuterXml()
方法正在拋出內存異常。代碼ReadOuterXml拋出OutOfMemoryException讀取大型(1 GB)XML文件的一部分
線都喜歡,使用
XmlTextReader xr = null;
try
{
xr = new XmlTextReader(fileName);
while (xr.Read() && success)
{
if (xr.NodeType != XmlNodeType.Element)
continue;
switch (xr.Name)
{
case "A":
var xml = xr.ReadOuterXml();
var n = GetDetails(xml);
break;
}
}
}
catch (Exception ex)
{
//Do stuff
}
:
private int GetDetails (string xml)
{
var rootNode = XDocument.Parse(xml);
var xnodes = rootNode.XPathSelectElements("//A/B").ToList();
//Then working on list of nodes
}
現在在加載XML文件,應用程序就xr.ReadOuterXml()
行拋出異常。可以做些什麼來避免這種情況? XML的大小几乎爲1 GB。
我們在談論什麼尺寸的XML文件的有關在這裏:
然後,按如下方式使用它? – Flater
簡單的加載xml的大小太大了。你可以考慮使用迭代器和GetDetails的結果來保持內存低。 – Fabio
Hi @Flater,XML的大小差不多是1 GB – Aniket