基本的に次のような 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 ファイル (~3-5MB) で、これらの XPath からポイントされた要素から値を取得する必要があります。XPathSelectElement を使用するとうまく機能しますが、非常に遅くなります。Linq to XML で同じことを行う、または手動で XML をトラバースするより迅速な方法はありますか?
関連する質問では、XPath のインデックス値と XElement から返される要素の順序は同じであることが保証されていますか? たとえば、これらは同じものを返します:
xdoc.XPathSelectElement("/Options/File[1]/Settings[2]);
xdoc.root.Elements("File").ElementAt(0).Elements("Settings").ElementAt(1);