xPath Evaluate vs XPathNodeIterator

时间:2010-08-20 13:22:41

标签: sum xpath evaluate xpathnavigator xpathnodeiterator

我正在寻找在巨大的xml文件(120MB)中计算某些标签的最快方法

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 :(得分:0)

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