Obsah HTML tagů   zodpovězená otázka

VB.NET

Zdravím,

potřeboval bych vykuchat html tak, abych se dozvěděl například, jaká je hodnota v prvku DIV a nebo jiném.

Příklad: Mám <DIV ID=neco>10</DIV> a potřeboval bych se dostat k té desítce, aniž bych používal regulární výrazy a nebo jiné složitosti. Napadá vás něco?

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

No jistě, lze použít XML parser:

Imports System.XML
Class Form1
Dim XmlDoc As New XmlDocument
XmlDoc.LoadXml("<DIV ID=neco>10</DIV>") ' musíte kód rozšířit tak, aby odpovídal standartům: http://cs.wikipedia.org/wiki/XML
' pohrajte si s třídou system.xml a přijdete na to jak dál
End Class
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

tohle řešení mne taky napadlo, ale pokud se pokusím nahrát HTML stránku do XML dokumentu, vyhodí mi to chybu, protože se nejedná o validní XML.

Nebo je nějaký fígl, jak přinutit počítač, aby to sežvýkal?

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

Tak za prvé musíte mít validní XML, to znamená, že můžete mít stránku:

<?xml version="1.0" encoding="UTF-8"?>
<html>
 atd...
</html>

a pokus se Vám nechce XML parser použít, můžete si za běhu programu vytvořit WebBrowser a použít jeho:

Dim xWebBrowser As New Webbrowser
xWebBrowser.DocumentText = "..."
msgbox(xWebBrowser.Document.GetElementsByTagName("DIV").Id)
msgbox(wwebBrwoser.Document.GetelementById("Elm").id)

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

Zřejmě budu muset použít druhé řešení, jde mi totiž o to pracovat s daty, které jsem nevytvořil já. Čili si nemůžu vybírat zda jde o xhtml a nebo ne.

WebBrowser jsem zkoušel, ale nějak se mi nepodařilo se dostat k jednotlivým tagům, zkusím to ještě jednou. V každém případě díky.

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

Hlavně je důležité mít ve WebBrowseru nějaký dokument.

Asi to nebude Váš případ, ale než jsem na tohle já přišel, dosti jsem se natrápil.

Nemáte za co, přeji Vám aby program běžel jak má.

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

Aha! Našel jsem ve svém kódu výše chybu:

xWebBrowser.Document.GetElementsByTagName("DIV")(0).Id

Omlouvám se

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Aha, tohle byl možná i můj problém, když jsem to zkoušel :)

nahlásit spamnahlásit spam 0 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