excel - Take data from next HTML tag -
using html code example:
<table class="table-grid"> <tr> <th>auto.model</th> <td> <pre>'toyota avensis wagon'</pre> </td> </tr> <tr> <th>auto.year</th> <td> <pre>2005</pre> </td> </tr> </table> if take parameter "auto.model" between <th></th> tags , want receive "toyota avensis wagon", i.e. next expression between <pre></pre>. ideally i'd have function it.
thank @jeeped, code raise "type mismatch" error , points set el = param.previoussibling: sub extract_td_text() dim url string dim ie internetexplorer dim htmldoc htmldocument dim params ihtmlelementcollection dim param htmltablecell dim val htmltablecell dim r long dim el htmltablecell url = "my url" set ie = new internetexplorer ie .navigate url .visible = false 'wait page load while .busy or .readystate <> readystate_complete: doevents: wend set htmldoc = .document end set params = htmldoc.getelementsbytagname("tr") each param in params if param.innertext "*auto.model*" set el = param.previoussibling exit end if next if not el nothing debug.print el.innertext ie.quit set ie = nothing end sub
instead of using previoussibling, i'd suggest nextelementsibling.
from way html , vba codes set up, current 'param' value being passed should <th> tag. think previoussibling check tag comes before that, , since first element within <tr> (the parent element), there shouldn't (except maybe invisible node- previoussibling can find, don't need).
i think nextelementsibling should able find <td> tag, since comes after <th> tag.
Comments
Post a Comment