2012-02-08 2 views
30

xpath 쿼리를 실행 한 후 결과 노드 집합에서 첫 번째 요소를 선택하려고합니다.xpath 결과 집합의 첫 번째 노드 가져 오기

나는이 작업을 수행 할 때 :

//dl 

나는 다음과 같은 결과 집합을 얻을 :

[<dl>​…​</dl>​, <dl>​…​</dl>​] 

가 어떻게 처음을받을 수 있나요? 다음 작업 중 어느 것도 작동하지 않습니다.

//dl[1] 
//dl[position()=1] 

Chrome의 웹 검사기에서이를 실행합니다.

답변

54

사용하여 다음

(//dl)[1] 

괄호가 중요하다. 첫 번째 노드가 //dl (부모의 첫 번째 자식 인 dl 요소 집합이 아님 (//dl[1] (괄호 없음)이 반환 함)을 원합니다.

이 하나가 //이 속기임을 깨닫는다 할 때 참조하는 것이 더 쉽습니다 (즉, 완전히로 확장) /descendant-or-self::node()/ 그래서 그 //dl[1]은 동일합니다 : 당신이 원하는 것을 분명히 더없는

/descendant-or-self::node()/dl[1] 

.... 대신, 당신은 찾고있다 :

(/descendant-or-self::node()/dl)[1] 
+0

나는 그것이 가능하다는 것을 알고 있었다. 내가 (// dl) 할 수있는 다른 예제가 있습니까? – tipu

관련 문제