2010-08-20 112 views
1

我正在寻找数在一个巨大的XML文件的一些标签的最快方式(120MB)XPATH评估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; 
} 

有什么建议?

的问候和感谢事先

回答

0

希望从这个文件中获得数,还是你真正需要的内容用于其他目的?如果您只需要计数,并且文件很大,则使用SAX Parser可能更有效,捕获相关节点上的事件并增加这些事件。