HTML 민첩성 팩으로 VB.NET의 XPath

html-agility-pack vb.net xpath

문제

나는 잘 작동하는 다음 vb.net 코드가 있고 메시지 상자에 id 특성을 가진 요소의 정확한 수를 봅니다.

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[@id]")
 MsgBox(hreftext.Count)

이제 문제는 내가 그것을 제공하는 메시지 상자에 다음을 사용하는 경우 객체 참조가 객체의 인스턴스로 설정되지 않았지만 ID가 rso 인 6 개의 elemnt가 있음

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[@id]")
 MsgBox(hreftext.Count)

두 번째 코드 조각에 문제가 있습니까?

수락 된 답변

귀하의 질문 중 다른 하나를 읽는 데, 그것은 당신이 구글 쇼핑을 긁적려고하는 것, 그리고 다운로드 된 HTML 소스보다는 생성 된 DOM을 확인하는 것을 게을리했습니다.

id "rso"는 html 소스에 나타나지 않으므로 오류가 발생합니다. Google은 긁어 모으기에 열중하지 않으며 확실히 어렵게 만듭니다.

무슨 뜻인지 확인하려면 양식에 여러 줄 텍스트 상자를 추가하고 현재 xpath 코드 대신 다음을 추가하십시오.

TextBox1.Text = htmldoc.DocumentNode.OuterHtml

그것은 꽤 isnt하다!!


인기 답변

케이스 확인에 대해 자세히 설명합니다.

시험:

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[translate(@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='rso']")
 MsgBox(hreftext.Count)

'rso'의 대소 문자 조합과 동일한 노드를 잡으려면




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