나는 htmlagilitypack과 함께 C#을 사용하고 있습니다. 찾고있는 테이블에 행이없는 경우를 제외하고 모두 잘 작동합니다. 페이지의 첫 번째 테이블에서 데이터 만 읽으려고합니다. 문제는 첫 번째 테이블에 행이 없으면 htmlagilitypack이 어떤 이유로 두 번째 테이블로 이동하는 것입니다. 어떻게 데이터 I를 보장 할HTMLAgilityPack - 빈 표 검색 중입니까?
foreach (HtmlNode node in root.SelectNodes("//table[@class='stats']/tr[position() > 2]/td"))
:
<table class='stats'>
<tr>
<td colspan='2'>This is the 1st table</td>
<tr>
<td>Column A</td>
<td>Column B</td>
</tr>
<tr>
<td>Value A</td>
<td>Value B</td>
</tr>
</table>
<table class='stats'>
<tr>
<td colspan='2'>This is the 2nd table</td>
<tr>
<td>Column 1</td>
<td>Column 2</td>
</tr>
<tr>
<td>Value 111</td>
<td>Value 222</td>
</tr>
</table>
내가 다음 줄을 사용하여 1 차 테이블의 값을 검색 :
는내가 읽어 노력하고있어 HTML은 다음과 같이 보입니다 첫 번째 테이블에서만 잡는거야?
감사합니다.
그래, 난 내 문제로 인해 내가 읽고 있어요 테이블은 그와 관련된 아이디의이없는 사실을 것 같다 생각합니다. – goalie35
"[@ class = 'stats']/tr [position()> 2]"을 지정하면 몇 가지 테스트를 실행하고 각 테이블의 2 행 뒤에있는 모든 "stats"클래스 테이블의 모든 행을 반환합니다. 따라서 원래의 예제에서는 2 행 (값 A | 값 B ... 및 값 111 | 값 222)을 반환합니다. 테이블 1의 행이 없으면 단순히 값 111 | 값 222를 반환합니다. 어떤 테이블에서 왔는지 신경 쓰지 않는 것 같습니다. @Chris Taylor – goalie35
@ goalie35 왜 내가 downvoted 되었습니까? 나는 당신이 당신의 코멘트가 Chirs Taylor를 타겟으로 삼아 잘못된 대답으로 귀하의 코멘트를 올린 것 같아요. –