2014-06-22 2 views
2

cccddd이 포함 된 요소가있는 부모 <tr>을 선택하는 방법과 다른 요소를 선택하지 않는 방법은 무엇입니까?여러 자녀를 기반으로하는 XPath 부모

<table> 
    <tr> 
     <td>aaa</td> 
     <td>bbb</td> 
     <td>select</td> 
    </tr> 
    <tr> 
     <td>ddd</td> 
     <td>ccc</td> 
     <td>select</td> 
    </tr> 
    <tr> 
     <td>ccc</td> 
     <td>ddd</td> 
     <td>select</td> 
    </tr> 
    <tr> 
     <td>aaa</td> 
     <td>ccc</td> 
     <td>select</td> 
    </tr> 
</table> 

이 행 선택 : 아래의 XML에서

즉, 또는

<tr> 
    <td>ccc</td> 
    <td>ddd</td> 
    <td>select</td> 
</tr> 

을, 나는 선택 어떻게의 같은 행에 (그 안에 기록 된 선택과) 세 번째 tdtd의 경우 ccc & ddd?

답변

3

XPath 식에는 몇 가지 위치 단계가 포함되어 있습니다. 각 단계는 술어 ([...]) 또는 다음 단계의 컨텍스트를 작성합니다. 마지막 단계는 효과적으로 선택된 결과 집합을 포함합니다. 모든 단계에서 하나 이상의 술어를 적용하여 세트를 줄일 수 있습니다.

이 식은 aaa의 스트링 값 bbb의 스트링 값으로 tdtd 요소와 요소를 포함하는 tr 요소를 선택한다. 를 사용하여

//tr[td='ccc' and td='ddd']/td[3] 

대신 :이 표현을 선택합니다

//tr[td='aaa' and td='bbb'] 

는 두 번째와 세 번째 <tr> s의 두 td 노드 (<td>select</td>) (td='ccc' and td='ddd'을 가지고있는 사람을 포함 설정 술어를 스태킹 할 수 있습니다. 각 술어는 결과 세트를 줄여서 다음 술어가 작동하는 컨텍스트를 작성합니다. 위의 표현식과 동일한 효과가 있습니다.

//tr[td='ccc'][td='ddd']/td[3] 
+0

큰 설명입니다. 나는 그것을 줄 것이며, 그것이 효과가 있다면, 당신을위한 하나 더 정확한 답을 줄 것이다. 감사! – BanksySan

관련 문제