HTMLファイル(そのコンテンツは私が制御しません)がありinput
、すべて同じ固定id
属性の要素がいくつかあり"search_query"
ます。ファイルの内容は変更される可能性がありますが、私は常にinput
id属性を持つ2番目の要素を取得したいことを知っています"search_query"
。
これを行うにはXPath式が必要です。試しまし//input[@id="search_query"][2]
たがうまくいきません。このクエリが失敗したXML文字列の例を次に示します。
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
上記は単なる例であり、他のHTMLコードはかなり異なる可能性があり、input
要素は一貫したドキュメント構造がなくてもどこにでも表示できることに注意してください(ただしinput
、id属性が常に2つ以上あることが保証されます)"search_query"
)。
正しいXPath式は何ですか?
良い質問です、+ 1。問題の完全な説明と必要な解決策については、私の回答を参照してください。
—
Dimitre Novatchev、
マイナーポイント:特定のIDを持つ要素を複数持つことはできません(そのため、質問のHTMLは実際には無効です)。実際には、ブラウザはとにかくそれを許可しますが、許可すると、IDを使用することの唯一の利点を逃してしまいます。一意の記号)。
—
machineghost 2016