나는
마이크로 소프트 HTML 개체 라이브러리과
Microsoft 인터넷에서 개체를 사용하는 것을 선호
가 제어 라이브러리 (모두 참조를 추가!), 예를 들어 주셔서 감사합니다 당신의 <a>
태그가 앉아있는 위치를 확인
Sub StartTest()
Dim Browser As SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
' start browser
Set Browser = New SHDocVw.InternetExplorer
Browser.Visible = True
Browser.navigate "www.dauda.at"
Set HTMLDoc = Browser.document
Dim ECol As MSHTML.IHTMLElementCollection
Dim IFld As MSHTML.IHTMLElement
' search all <a> tags
Set ECol = HTMLDoc.getElementsByTagName("a")
For Each IFld In ECol
' etc ...
Next IFld
' clean up
Set IFld = Nothing
Set ECol = Nothing
Set HTMLDoc = Nothing
Browser.Quit
Set Browser = Nothing
End Sub
는 바깥 쪽 부모의 태그를 얻을 수있는 IFld.ParentNode.nodeName
검사로 쉽게 할 수 있습니다. 깊이 <a>
이 당신의 중첩 어떻게 불분명 경우
, 당신은 문서 루트 ("#document"
) 또는 포함 "HTML"
, 예를 들면까지 다음으로 높은 부모에게 모든 방법을 섹터가 재귀 함수를 사용할 수있다
Function BadParentRec(TestFld As MSHTML.IHTMLElement) As Boolean
Dim MyTag As String, MyTempResult As Boolean
BadParentRec = False
MyTag = TestFld.ParentNode.nodeName
' Debug.Print MyTag
If MyTag = "#document" Then
MyTempResult = False ' lowest level is good
ElseIf MyTag = "XXX" Then ' your own criteria for bad tags go here
MyTempResult = True ' send "bad" back up the recursion chain
Else
MyTempResult = BadParentRec(TestFld.parentElement) ' next level down
End If
BadParentRec = MyTempResult
End Function
... 당신이
If Not BadParentRec(IFld) Then
Debug.Print Ifld.href ' check here for href = ""
End If
이 안된
하지만 루프를 말할 것
For Each
루프 내부 그래서, 당신은 '과 같은 각각'A'의 부모 태그를 확인할 수 있습니다. ParentNode.NodeName = "헤더"'? – BobbitWormJoe할 수는 있지만 중첩이 많이 있습니다. – aadithyapk