XPathで//の記述を避ける意味
規模の大きなXML文書(データ)を処理するXSLTスタイルシートにおいて、XPathに//
を使用するのは避けた方が良いというアドバイスをいただいたことがあります.例えば概要の構造で次のようになるXMLファイルに対して//para[exists(b)]
とするなど.
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<!--実際には下記の構造が繰り返される-->
<part>
<chapter>
<section>
<p>これは<b>あくまで</b>構造を示す<u>サンプル</u>です.</p>
<p>これは<i>あくまで</i>構造を示す<u>サンプル</u>です.</p>
<p>~</p>
<p>~</p>
<p>~</p>
</section>
</chapter>
</part>
</doc>
これは/doc/part/chapter/section/p[exists(b)]
とすべきとのことです.
//
を使用すべきでないとはどのような理由に依るものでしょうか?