2010-08-20 23 views
1

Je suis à la recherche la plus rapide de compter quelques balises dans un énorme fichier xml (120MB)xPath Évaluer vs XPathNodeIterator

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; 
} 

Toutes les suggestions?

salutations et remerciements à l'avance

Répondre

0

Etes-vous que cherchent à obtenir que les chiffres de ce fichier, ou avez-vous besoin réellement le contenu à d'autres fins? Si vous avez juste besoin des comptes, et que le fichier est grand, il est probablement plus efficace d'utiliser un SAX Parser, d'attraper les événements sur les nœuds concernés et d'incrémenter ces événements.