요소의 n 번째 인스턴스를 가져 오기위한 XPath 쿼리
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 표현식은 무엇입니까?
이것은 FAQ입니다 .
//somexpression[$N]
" //somexpression
해당 노드에서 선택한 모든 노드를 찾으십시오 $N
."
당신이 원하는 것은 :
(//input[@id="search_query"])[2]
알아두기 : []
연산자는 //
약어 보다 우선 순위가 높습니다 (우선 순위) .
이것은 작동하는 것 같습니다 :
/descendant::input[@id="search_query"][2]
Michael Kay의 "XSLT 2.0 및 XPath 2.0 프로그래머 참조 서, 4 판"에서이 작업을 수행합니다.
XML Path Language 사양 http://www.w3.org/TR/xpath/#path-abbrev 의 "Abbreviated Syntax"섹션에도 힌트가 있습니다.
참고 URL : https://stackoverflow.com/questions/4007413/xpath-query-to-get-nth-instance-of-an-element
'Programing' 카테고리의 다른 글
CSS 마진 테러; (0) | 2020.07.14 |
---|---|
Xcode에서 서명 신원 문제를 해결할 수 없습니다 (0) | 2020.07.14 |
C ++에서 튜플을 사용하는 것이 더 일반적이지 않은 이유는 무엇입니까? (0) | 2020.07.14 |
CVS에서 Git으로 이동 : $ Id : $ 상당? (0) | 2020.07.14 |
배열에서 첫 번째 요소를 제외한 모든 요소 가져 오기 (0) | 2020.07.14 |