У меня большой XML-документ размером около 100 МБ. Мне нужно найти атрибуты для двух тегов в этом документе. Я могу сделать это, используя код, подобный следующему:
XmlDocument xmlDocument = new XmlDocument ( );
xmlDocument.Load ( "C:\\myxml.xml" );
XmlNode node1 = xmlDocument.SelectSingleNode ( "/data/objects[@type='data type 1']" );
if ( null != node1 )
{
result = node1 [ "Version" ].Value;
}
Но при этом весь XML-файл загружается в память, которая, кажется, занимает около 200 МБ. Могу ли я сделать это более эффективным?
Редактировать: множество хороших ответов с использованием XmlTextReader, который я написал для использования сейчас. (Это будет более эффективным с точки зрения памяти, но безобразно:).