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, перехватывать события на соответствующих узлах и увеличивать их.