質問: documentt.DocumentNode.SelectNodes(".//a[@href]"); ``` すべて私がしたいのは、ページ上のリンクを抽出することです、大きなサイトのために..とにかく私はこれをCPUをあまり使わないようにすることができますか? 私は多分私が取るものを制限すると思っていた?ここで私の最高のオプションは何ですか? 確かに誰かがこの問題に遭遇したはずです:)
回答: ".//a[@href]"は非常に遅いXPathです。 "// a [@href]"で置き換えようとするか、ドキュメント全体を歩き回り、すべてのAノードをチェックするコードで置き換えようとしました。 なぜこのXPathが遅いのですか? 1. ""ノードから始まる 2. "//"すべての子ノードを選択する 3. "a" - "a"ノードだけを選択する 4. hrefで "@href" 部分1 + 2は、「すべてのノードに対してすべての子孫ノードを選択する」という非常に遅い。