HTML 문서에서 N 번째 자식 노드 선택

c# html html-agility-pack xpath

문제

다섯 번째 자식 table 과 혼동하지 말고 DOM 의 다섯 번째 테이블에있는 모든 table 요소를 가져와야하는 html 문서가 있습니다. 내 문제는이 5 table 깊은 구조를 어떤 div 요소를 여러 줄로 래핑 될 수 있으므로 절대 경로를 사용할 수 없습니다.

/ html / body / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table

예 :

<body>    
    <table>    
        <table>
            <table>
                <table>
                   <!--Grab this one -->
                   <table>
                   </table>
                </table>
            </table>
       </table>
    </table>
</body>

아니면 이거:

 <body> 
    <div> <!--Could be wrapped more than just once though -->  
        <table>    
            <table>
                <table>
                    <table>
                       <!--Grab this one -->
                       <table>
                       </table>
                    </table>
                </table>
           </table>
        </table>
    </div>
</body>

수락 된 답변

사용 :

(//table[count(ancestor::table) = 4])[1]

이 첫 번째 선택 table 정확히라는 이름의 네 조상이 문서에 table .


인기 답변

전체 표현식을 만드는 각 요소 사이에 // 표현식을 원한다고 생각합니다.

//table//table//table//table//table

이렇게하면 경로의 모든 위치에 4 ​​개의 테이블이있는 테이블이 선택됩니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.