VBA HTML-Parser

Hallo Experten,

ich bin z.Z. auf der Suche nach einem geeigneten HTML-Parser, mit dem ich auch gezielt auf einzelne ChildNodes zugreifen kann.

Bsp.:
derNamedieAdressedasAlter

Z.B. soll der Parser mir die Werte „derName“,„dieAdresse“ und „dasAlter“ ausgeben, wenn ich ihm etwas sage, wie …

dieTabelle = getElement(„table“).class(„tabellexy“)
dieTabelle.getChildNode(„thead“).getChildNode(„tr“)getChildNode(„a“).getValue()

Oh man wäre ich froh, wenn es so etwas gäbe :smile:.
Kennt einer von euch einen solchen oder ähnlichen Parser?
Ich habe es bisher nur über mshtml versucht, bin aber bei den
Child-Nodes hängen geblieben.

Danke im Voraus

Gruß

Moe

Hi M,

ich bin z.Z. auf der Suche nach einem geeigneten HTML-Parser,
mit dem ich auch gezielt auf einzelne ChildNodes zugreifen
kann.

mit welchem Vba, Corel Draw, Catia, … ?

Z.B. soll der Parser mir die Werte „derName“,„dieAdresse“ und
„dasAlter“ ausgeben, wenn ich ihm etwas sage, wie …

dieTabelle = getElement(„table“).class(„tabellexy“)
dieTabelle.getChildNode(„thead“).getChildNode(„tr“)getChildNode(„a“).getValue()

Ich weiß nicht woher getElement und getChildNote stammt, für mich ist so eine html-Seitze eine Textdatei die man auslesen und filtern (parsen) kann.

Ich sehe dann das Problem so, in einer Textdatei nach einer zeile suchen, die tabellexy in sich trägt, nachfolgend dann alles auslesen was zwischen Beginn von „thead“ und Ende von „thead“ steht, dabei nur das rausfiltern was zwischen tr und a steht.
Ist das korrekt so?

Gibt es dazu einen Beispiellink zu einer Webseite?

Gruß
Reinhard

Hallo Reinhard,

ich verwende Excel-VBA. Ich möchte nur auf bestimmte Elemente zugreifen können. Was ich an Code geschrieben war sollte nur zur Veranschaulichung des Problems dienen. Ich habe z.Z. mit meinem mshtml-Modul nur die Möglichkeit gezielt auf alle Table-Elemente zugreifen zu können. Wenn ich nun im .innerText aller Tabellen nach einem Begriff suche, findet der Parser nichts, denn er sucht im jeweiligen Tabellen-Element.

Nun möchte ich den aber in dem Element IM Tabellen-Tag suchen lassen. Dazu brauche ich allerdings den Child von . Blöderweise kann ich nicht direkt sagen „hole mir das erste Kind-Element von table“(also thead) und die darunterliegenden Elemente etc.

Deshalb brauche ich einen Parser, mit dem ich das bewerkstelligen kann. Hast du vielleicht eine Idee?

Grüße

Moe

Hi Moe,

ich gehe davon aus, daß es Dir möglich ist den Inhalt
von THEAD in eine String-Variable zu packen (egal ob
mit oder ohne CRLF). Dann hilft Dir das wahrscheinlich
weiter:

Dim a, e, c As Integer
Dim s As String

s = "derNamedieAdressedasAlter"

c = 0
a = InStr(s, "") 'erstes Feld suchen  
Do While a \> 0 'solange wiederholen wie Felder da  
 a = a + 7 'erstes Zeichen nach den Tags ermitteln  
 e = InStr(s, "") 'letztes Zeichen ermitteln

 c = c + 1
 MsgBox (Str(c) & ". " & Mid(s, a, e - a))

 s = Mid(s, e + 8) 's von links her abschneiden
 a = InStr(s, "") 'here we go again  
Loop  
  
  
  
LG ALex