Struktura HTML kódu   zodpovězená otázka

VB.NET, HTTP/HTML

Zdravím

moc bych potřeboval radu, jak sestavit kód, který by mi ze stringu, který by obsahoval HTML zdroj vytahal tagy a naházel je do TreeView. Úrovně kódu se pokusím dorovnat sám, ale nebudu naštavný když mi s tím také pomůžete. Pozor! Nejedná se přímo o HTML kód, ale o můj vlastní značkovací jazyk, který je s html shodný, akorát má jinak pojmenované tagy.

Děkuji

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

Pokud používáte jiné tagy, jedná se o jazyk XML. Více informací je na adrese http://cs.wikipedia.org/wiki/XML#Syntaxe... . XML má ovšem přísnější pravidla než HTML, otázkou tedy je, jsou-li ta vaše data validní XML? Pokud ne, doporučuji je převést, lépe se s tím pracuje. Jsou tedy data validní XML?

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

No to nejsou, mám takto kódované stránky, vypadají zhruba takhle:

<page>
<title>Stránka</title>
<chapter title="Titlulek kapitoly">
<p>Text<img src="img.gif"> - obrázek</p>
</chapter>
<chapter title="Titlulek kapitoly">
<p>Text<img src="img.gif"> - obrázek</p>
</chapter>
</page>

ale nemyslel jsem si, že bude potřeba validace, co musím všechno udělat pro to aby byly validní?

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

Tak jsem se díval na tu wikipedii a vypadá to dobře, jde v podstatě o to horní linku <?xml version="1.0" encoding="UTF-8"?>. To je vše? A můžete mi dát link na článek nebo stránky o XML třídě ve VB .NET?

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

Díval, ale nečetl celé. Je toho hodně. První řádek tam být nemusí, pokud je soubor v UTF-8. Pokud není, dát ho tam musíte.

Aby to bylo validní XML, musíte zavírat značky img.

Takže buď dáte:

<img src="něco.jpg" />

nebo

<img src="něco.jpg"></img>

Pak to teprve bude validní XML. Validní XML musí splňovat tyto pravidla:

- vše musí být uvnitř kořenové značky (to máte správně).

- každá značka musí být uzavřena, značky se nesmí křižit.

- záleží na velikosti písmen (<b> a </B> k sobě nepatří!)

- všechny hodnoty atributů musí být v úvozovkách (<a href=str> nejde, musí být <a href="str"> atd.

Pak je možné takovýto dokument jednoduše načíst a zpracovat:

    Public Sub Nacist()
        Dim doc As New Xml.XmlDocument()
        doc.Load("d:\weby\classportal\app_Data\lunchlist.xml")   'otevřít soubor
        VytvorPolozky(doc.ChildNodes, TreeView1.Nodes)    'vytvořit rekurzivně položky
        doc = Nothing
    End Sub

    Private Sub VytvorPolozky(ByVal xmlNodes As Xml.XmlNodeList, ByVal treeNodes As TreeNodeCollection)
        For Each n As Xml.XmlNode In xmlNodes   'projít všechny předané položky
            If n.NodeType = Xml.XmlNodeType.Element Then   'pokud je to element
                Dim t As TreeNode = treeNodes.Add(n.Name)  'vytvořit samotnou položku
                If n.HasChildNodes Then   'pokud jsou vnořené položky, rekurzívně je přidat
                    VytvorPolozky(n.ChildNodes, t.Nodes)
                End If
            End If
        Next
    End Sub

O XML bych chtěl také v nejbližší době napsat seriál, ale nemám moc času. Anglicky je toho dost, česky ne.

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

Děkuji, je to opravdu moc dobré. Ty pravidla jsem také přelouskal, akorát jsem dosud nevěděl, že se tagy uzavírají i <tag /> to je pro mě novinka. Děkuji

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

Ještě jednu věc, když mám v treeview ty nodes a označím položku, je něajký společný znak, kterým bych mohl zjistit, jaká je to node v Xml dokumentu? Zkoušem jsem Level a Index, ale ty jsou jen pro treeview. Poradíte?

Děkuji

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