HTML 민첩성 팩을 사용하여 특정 표 셀을 선택하는 방법

html-agility-pack vb.net xpath

문제

HTML 테이블의 셀에서 특정 필드를 가져와야합니다. 파이어 버그를 사용하여 내가 필요로하는 셀에 정확한 XPath를 얻을 수있었습니다 (불행히도, 셀에는 ID 태그가 없습니다). 나는 DocumentNode.SelectSingleNode를 사용하고 그 경로를 전달할 수 있다고 생각했지만 제대로 작동하지 않는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 아니면 제가하는 일보다 더 나은 접근 방법이 있습니까? 불행히도 XPath에 대한 경험이 없기 때문에 이것이 예상보다 어려워졌습니다. 여기에 내가 지금까지 가지고있는 것이있다. (나는 HTML이 상당히 지저분하다는 것을 알고있다. 그러나 그것은 나의 통제가 아니다.)

Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")

매우 감사.

수락 된 답변

방화범이 끌린 html 태그가 수정되었을 수 있습니다. Html 노드를 선택하려면 class 또는 id를 사용하는 것이 좋습니다. 예 :

//div[@class='content']//table//tr[1]/td[2]

경로를 단축하고 클래스 또는 id selector를 사용하십시오.

테이블에 ID가 있으면 다음과 같이 사용할 수 있습니다.

//div[@class='content']//table//tr[1]/td[2]

XPATH가 흥미 롭다는 것을 알게 될 것입니다.




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