print $tree->findvalue('//a[1]');
나는 perl에서 HTML::TreeBuilder::XPath
을 사용하고 있습니다. 이제 위의 문장은 두 번째 "a"요소의 값을 반환하지만 대신 페이지의 모든 "a"요소의 값을 반환합니다. 왜 이해가 안되니?다음의 XPath 문은 모든 "a"요소를 반환하는 이유는 무엇입니까?
print $tree->findvalue('//a[1]');
나는 perl에서 HTML::TreeBuilder::XPath
을 사용하고 있습니다. 이제 위의 문장은 두 번째 "a"요소의 값을 반환하지만 대신 페이지의 모든 "a"요소의 값을 반환합니다. 왜 이해가 안되니?다음의 XPath 문은 모든 "a"요소를 반환하는 이유는 무엇입니까?
모든 요소의 첫 번째 a-child를 반환해야합니다. 대신 XPATH 표현은 문서의 모든 수준과 조건 필터 모든 a
요소에 대해 보이는
가 선택
X
Y
a <-- give you this
a
Z
a <-- and this
a
이 (//a)[1]
을 시도 :
그래서 //a[1]
과 같이 작동은 다음 (결과는 2 개 노드 예정) 모든 단계에서 처음으로 a
. (형제 자매했다 이상의 a
, 당신 만 형제의 첫 번째를 얻을 것이 있다면)
그래서, 당신의 XML 구성 방식에 따라, 당신은 마다a
요소를 얻을 수 있습니다. 당신은 단지 문서의 첫 번째 a
을 선택하도록하는 경우
그러나,이 표현 사용할 수 있습니다 (//a)[1]
괄호 안의 //a
의 선택을 포장하면 조건 필터가 적용된 후 컬렉션을 생성 //
의 각 단계에서 처음으로 발견 된 a
대신 컬렉션의 첫 번째 항목을 선택하십시오.
+1 설명하기 좋은 시각화와 간결한 설명. –
[Xacobeo] (http://p3rl.org/Xacobeo)는이 시각화를 대화식으로 수행 할 수 있습니다. – daxim