C # HtmlAgilityPack HtmlNodeCollection 선택 노드가 작동하지 않습니다.

c# html html-agility-pack selectnodes xpath

문제

이것은 내가 사용하고있는 코드 라인입니다. watch 윈도우를 보면 'c'가 null입니다.

HtmlNodeCollection c = doc.DocumentNode.SelectNodes("//*[@id=\"content\"]/table/tbody/tr[2]/td/center[2]/b");

하지만 'c'라고 선언하면 조사 윈도우에 유효한 HtmlNodeCollection으로 표시됩니다.

HtmlNodeCollection c = new HtmlNodeCollection(doc.DocumentNode.ParentNode);

'c'를 첫 번째 코드 스 니펫으로 설정하면 null로 되돌아갑니다.

XPath가 정확하다는 것을 알고 있습니다. 원하는 요소의 Chrome Inspect 요소에서 XPath를 가져 와서 알았습니다.

인기 답변

SelectNodes는 아무것도 찾지 못하면 null을 반환합니다.

XPATH를 구축 한 브라우저 (Chrome, Firefox 등)를 사용했기 때문에 XPATH가 괜찮다고 생각하지만 유감스럽게도이 XPATH는 네트워크 (또는 파일 또는 원시 스트림)에서 가져온 것과 동일하지 않습니다. .

브라우저는 내부적으로 사용하는 메모리 내 DOM을 사용하므로 크게 다를 수 있습니다. 그렇기 때문에 마크 업이 아닌 DOM에있는 TBODY와 같은 요소를 볼 수 있습니다 (선택 사항 인 경우).

그래서, 당신은 다시 문자열 / 스트림 당신이 Html 민첩성 팩을주고 XPath를 다시 확인하는 것이 좋습니다. TBODY가 없다고 생각합니다.



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