我有本质上的XPath的名单像这样一个文件:XPathSelectElement非常慢;有没有更好的方法让XPath获得价值?
/Options/File[1]/Settings[1]/Type[1]
/Options/File[1]/Settings[1]/Path[1]
/Options/File[1]/Settings[2]/Type[1]
/Options/File[1]/Settings[2]/Path[1]
/Options/File[2]/Settings[1]/Type[1]
/Options/File[2]/Settings[1]/Path[1]
我需要抓住从元素的值在中等大小的XML文件中指出,从这些XPath(〜3-5MB)。使用XPathSelectElement运行良好,但速度非常慢。有没有更快的方法来执行Linq到XML或甚至手动遍历XML?
在相关问题中,XPath中的索引值和XElement返回的元素顺序保证是相同的?例如,将这些返回相同的:
xdoc.XPathSelectElement("/Options/File[1]/Settings[2]);
xdoc.root.Elements("File").ElementAt(0).Elements("Settings").ElementAt(1);
'这些会返回相同的吗?你为什么不尝试? – 2012-04-03 21:38:51
我当之无愧。对于什么是值得的,我实现了一个遍历元素的方法,有效地做了与“xdoc.root.Elements(”File“)相同的事情。 它似乎确实匹配,至少对我的数据。但即使对于大数据集,我也不会说可以保证这些方法之间的索引总是相同的。 如果此方法成立,它似乎比使用XPathSelectElement快至少一个数量级。 – 2012-04-03 22:12:46