public XmlNodeList GetNodes(string _logFilePath, string _strXPathQuery)
{
objXmlDoc = new XmlDocument();
objXmlDoc.Load(_logFilePath);
XmlNodeList objxmlNodeList = objXmlDoc.SelectNodes(_strXPathQuery);
return objxmlNodeList;
}
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<AppXmlLogWritter>
<LogData>
<LogID>999992013021110381000001</LogID>
<LogDateTime>20130211103810</LogDateTime>
<LogType>Message</LogType>
<LogFlag>Flag</LogFlag>
<LogApplication>Application</LogApplication>
<LogModule>Module</LogModule>
<LogLocation>Location</LogLocation>
<LogText>Text</LogText>
<LogStackTrace>Stacktrace</LogStackTrace>
</LogData>
</AppXmlLogWritter>
ここで、xmlDocument オブジェクトに読み込むと、xml ファイルのサイズは 1000MB になり、OutOf メモリ例外が発生します。これは、XMLDocument がノードをメモリに格納するためです。Xpath クエリを使用して、xml ファイル全体でノードをフィルタリングします。XpathQueryを使用するように言われた大規模なXMLファイルの処理方法に関する記事を読みました。しかし、問題は解決しません。 ファイルストリームはどうですか?または大きなxmlファイルをロードする他のアイデアはありますか? *