2013-09-25 4 views
0

HtmlAgility를 사용하여 vb.net에서 자식이 숨겨진 입력이 아닌 HTMLNode의 모든 자식을 구문 분석하려고합니다. 불행하게도 숨겨진 입력 자식 노드가 여전히 분석되고있다linq을 사용하여 특정 HtmlAgility ChildNodes를 제외하는 방법

If node.InnerHtml.Length > 10000 Then 
       'Parse the current node's child nodes 
       For Each child As HtmlNode In node.ChildNodes _ 
                .Where(Function(c) c.NodeType <> HtmlNodeType.Text _ 
                  AndAlso c.NodeType <> HtmlNodeType.Comment _ 
                  AndAlso c.Name <> "script" _ 
                  AndAlso c.GetAttributeValue("type", "no").ToString() IsNot "hidden") 
        RecursiveHtmlParse(child) 
       Next 
End If 

:

다음 코드를 사용하여. 나는 몇 시간 동안 노력했고 foreach가 그들을 건너 뛰지 못하게 할 수 있습니다.

도움을 주시면 감사하겠습니다.

미리 감사드립니다.

답변

1

VB.NET의 Is과연산자는 참조 평등을 검사합니다. 동일한 값을 포함하는 두 개의 문자열은 실제로 메모리의 다른 객체를 참조 할 수 있습니다. ><("아니오", "유형")

AndAlso Not c.GetAttributeValue("type", "no").Equals("hidden") 
+0

AndAlso c.GetAttributeValue("type", "no") <> "hidden" 

또는 이것이 내가 AndAlso c.GetAttributeValue 사용 "숨겨진"그것은 매력 덕분처럼 일 :

대신 시도 . 이것은 분명히 앞으로 나를 위해 경험을 배우게 될 것입니다. – user1345632

관련 문제