Istnieje plik HTML (którego zawartość nie kontroluję), który zawiera kilka input
elementów z tym samym ustalonym id
atrybutem "search_query"
. Zawartość pliku może się zmienić, ale wiem, że zawsze chcę uzyskać drugi input
element z atrybutem id "search_query"
.
Aby to zrobić, potrzebuję wyrażenia XPath. Próbowałem, //input[@id="search_query"][2]
ale to nie działa. Oto przykładowy ciąg XML, w którym to zapytanie nie powiodło się:
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
Należy pamiętać, że powyższy kod jest jedynie przykładem, a inny kod HTML może być całkiem inny, a input
elementy mogą pojawić się w dowolnym miejscu bez spójnej struktury dokumentu (poza tym, że mam gwarancję, że zawsze będą co najmniej dwa input
elementy z atrybutem id o wartości "search_query"
).
Jakie jest prawidłowe wyrażenie XPath?