Unterobj. von html getElements..() weiter parsen
23.09.2019 12:00:38
html
Das funktioniert so weit auch. Ich habe nur das Problem das ich mir nur vom MSHTML.HTMLDocument-Objekt mir einzelne oder mehrere Objekte zurückliefern lassen kann. Haben dies aber weitere Objekte Objekte weiß ich nicht, wie ich darauf zugreifen kann.
Ich kann die getElements...-Funktionen nicht auf das zurückgelieferte Objekt anwenden. Per Index kann ich nur direkt auf bei Rückgabe auf das Zurückgelieferte Objekt zugreifen wie z.B. hier
Set htmlAnswers = oHtml.getElementsByClassName("klappbar offen")(0)
.
Alle anderen Versuche das htmlAnswerObjekt weiter zu filtern, oder auch in anders Objektedefinierte Objekt (z.B HTMLDocument) führen auch zu keinem Erfolg .
Weiß hier vlt. jmd eine Lösung.
Wenn ich da etwas komplett falsch mache bitte auch antworten.
Aber in mehreren Schritten durchiterieren brauche ich also das innerhtml mit regex zu parsen war auch schon meine idee, der (post dazu kommt auch von mir).
---------- beginn globaler bereich ---------------
Dim objXML As MSXML2.DOMDocument60
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL$, _
ByVal szFileName$, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
---------- ende globaler bereich --------------------------anfang funktions bzw. prozedur-bereich -------------
Dim fso As Object
' FileSystem Objekt anlegen
Set fso = CreateObject("Scripting.FileSystemObject")
'Variablen und objekte deklarieren
Dim oHtml As MSHTML.HTMLDocument
Dim htmlAnswers As Object 'MSHTML.DispHTMLElementCollection
Dim sLocalFilename As String
' variablen initialisieren
sLocalFilename = "D:\16092017\webseite_vba_donload.html"
Set oHtml = Nothing
' oHtml kann auch mit ExplorerObjek.Navigate zugewiesen werden
Set oHtml = oHtml4.createDocumentFromUrl(sLocalFilename, "")
' Beispiel html-teile mit class =cf anfordern
Set htmlAnswers = oHtml.getElementsByClassName("cf")
' Beispiel html-teile mit class =klappbar offen anfordern und zwar nur das 1,. _
element
Set htmlAnswers = oHtml.getElementsByClassName("klappbar offen")(0)
----------- Ende funktions bzw. prozedur-bereich -------------