HtmlDocument   otázka

VB.NET, Algoritmy, HTTP/HTML

Dobrý deň,

potrebujem poradiť ohľadne vytvorenia HtmlDocumentu.

Nasledovným sposobom získam obsah stránky:

Dim URL As String = "http://wwww.abc.sk"
Dim client As System.Net.WebClient = New System.Net.WebClient()
Dim data As IO.Stream = client.OpenRead(URL)
Dim reader As IO.StreamReader = New IO.StreamReader(data, System.Text.ASCIIEncoding.GetEncoding("iso-8859-2"))
Dim TextStranky As String = ""
TextStranky = reader.ReadToEnd

potrebujem vytvoriť htmlDocument (bez použitia webbrowser), do ktorého zapíšem text stránky a v ktorom môžem vyžívať bežné metódy HTMLDokumentu ako getElementsByTagName, getElementsByClassName a podobne.

Jediné čo sa mi podarilo vygoogliť:

 Dim odoc As Object = New mshtml.HTMLDocument
 odoc.open()
 odoc.write(TextStranky)

ale pri tomto sposobe mi nepracujeje intellisense a často robím preklepy:)

Intellisence ponúka nasledovné napríklad

odoc.Equals
odoc.GetHashCode

keď napíšem napr.

Dim El_colection_UL As mshtml.IHTMLElementCollection
El_colection_UL = odoc.getElementsBytagName("ul")

tak získam požadovanú kolekciu elementov.

Možete mi pomôct ako správne vytvoriť HTMLDocument aby intellisene pracovalo.

Ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste původní deklaraci:

Dim odoc As Object = New mshtml.HTMLDocument

změnit na:

Dim odoc As mshtml.HTMLDocument = New mshtml.HTMLDocument

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ak zmením deklaráciu tak mi vyhodí výnimku

Nesoulad typů.

System.Runtime.InteropServices.COMException

nahlásit spamnahlásit spam 0 odpovědětodpovědět

vygooglené a upravené.

Private Function MojNewHtmlDoc(ByVal url As String) As mshtml.HTMLDocument
Dim wc As New Net.WebClient
Dim data As IO.Stream = wc.OpenRead(url)
Dim reader As IO.StreamReader = New IO.StreamReader(data, System.Text.ASCIIEncoding.GetEncoding("iso-8859-2"))
Dim TextStranky As String = ""
TextStranky = reader.ReadToEnd

Dim doc As mshtml.IHTMLDocument2 = New mshtml.HTMLDocument
doc.write(TextStranky)
doc.close()
Return DirectCast(doc, mshtml.HTMLDocument)

End Function

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback