このXpath式"//span[@class='Big']"
を使用し、<span>
タグとclass='Big'
の下にあるそのページのすべての要素を取得しました。
私の質問は、ページの最初の出現だけでなく、すべての出現が必要な場合、正しいXpath
式は何でしょうか?
ありがとう、ナリン
正解(括弧に注意):
(//span[@class='Big'])[1]
一般的な場合、次の式は間違っています:
//span[@class='Big'][1]
ドキュメント内のすべてのspan
要素を選択し、最初の述語の条件を満たし、その親の最初のそのような子であるため XMLドキュメント内にこのような要素が多数あり、それらすべてが選択されます。
詳細な説明については、以下を参照してください: https://stackoverflow.com/a/5818966/36305
class
属性がequal toBig
(要素にアタッチされた他のクラスなし):
(//span[@class="Big"])[1]
...次のJavaScript式に似ています:
document.querySelectorAll('span[class="Big"]')[0]
一方、Big
が任意の数の1つのクラスの class
属性(唯一のクラスではなく)、次の式を使用できます。
(//span[contains(concat(" ", normalize-space(@class), " "), " Big ")])[1]
...次のJavaScript式に似ています:
document.querySelectorAll('span.Big')[0]