xPath Evaluate vs XPathNodeIterator - PullRequest
       34

xPath Evaluate vs XPathNodeIterator

1 голос
/ 20 августа 2010

Я ищу самый быстрый способ подсчета некоторых тегов в огромном 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 Ответ

0 голосов
/ 13 мая 2011

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

...