「厄介な "//" 演算子」という節に注目。 msdnのデッドリンクに伴いURL変更。http://www.microsoft.com/japan/msdn/columns/xml/xml02212000.asp → http://www.microsoft.com/japan/msdn/columns/xml/xml02212000.aspx
拡張子(謎)が*.aspから*.aspxになっただけでデッドリンク。msdnってホント馬鹿。
/descendant-or-self::node()/
(つまり//
)は、15%程パフォーマンスを低下させるそうな。単に子孫ノードを見るならdescendant::
という軸があるので、滅多に//
が必要になることはない
筈。また、どこかに書いた気がするけれど、この//
というステップは、大抵の場合複数のノードに焦点を合わせることになるから、続くステップで単一のノードを含むノード集合を指定した気になると危険。ロケーションパスパターン(XSLTのmatch属性の値に使えるアレ)に使えるのが利点と言えば利点かも。でも私なら使わずに済むようなスタイルシートを書くと思う。
更新