xPath Evaluate vs XPathNodeIterator

Я ищу самый быстрый способ подсчета некоторых тегов в огромном XML-файле (120 МБ)

long Quantity;
XPathDocument xDocData = new XPathDocument(str_File_path);
XPathNavigator xNavData = xDocData.CreateNavigator();

//Option 1
XPathExpression xExp = xNavData.Compile("sum(Tag/Value)");
Quantity = Convert.ToInt64(xNavData.Evaluate(xExp));

//Option 2
XPathNodeIterator xNodeIter = xNavData.Select(xExp);
while(xNodeIter.MoveNext())
{
    Quantity += xNodeIter.Current.ValueAsLong;
}

Какие-либо предложения?

привет и заранее спасибо

1 ответ

Вы только хотите получить счет из этого файла, или вам действительно нужно содержимое для каких-то других целей? Если вам просто нужны счетчики, а файл настолько велик, вероятно, более эффективно использовать SAX Parser, перехватывать события на соответствующих узлах и увеличивать их.

Другие вопросы по тегам