input
동일한 고정 id
속성을 가진 여러 요소 가있는 HTML 파일 (이 내용은 내가 제어하지 않음)이 있습니다 "search_query"
. 파일의 내용은 변경 될 수 있지만 항상 input
id 속성을 가진 두 번째 요소 를 얻고 싶다는 것을 알고 "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 속성 이 항상 두 개 이상인 요소 는 항상 보장된다는 점을 제외하고 ) "search_query"
).
올바른 XPath 표현식은 무엇입니까?
좋은 질문입니다, +1 문제에 대한 완전한 설명과 원하는 해결책에 대해서는 내 대답을 참조하십시오.
—
Dimitre Novatchev
사소한 점 : 주어진 ID를 가진 요소를 두 개 이상 가져서는 안됩니다 (따라서 질문의 HTML은 실제로 유효하지 않습니다). 실제로 브라우저는 어쨌든 할 수 있지만 ID를 사용하는 유일한 이점을 놓치면 "I 'm unique"라는 신호를 받는다는 것입니다 (클래스는 비 고유 한 기호).
—
machineghost