Gambas France BETA


Pas de compte ? Incription

gb.html

À propos de ce code

Ce composant est obsolète !
Depuis la version 3.2 de Gambas (ou la version SVN), gb.html est intégré à part entière dans Gambas et remplace l'ancien composant gb.xml, et inclut un sous-composant gb.xml.html qui comporte toutes les fonctionnalités de ce composant (en plus de bien d'autres). La seule différence est la nomenclature des classes : HtmlNode devient XmlNode, HtmlElement devient XmlElement, seul HtmlDocument reste.


Ce petit composant fait en C++ vous permet de manipuler des documents HTML pour créer des pages web, ou pour les lire depuis un site web. Vous pouvez le manipuler comme un arbre DOM, charger du HTML depuis un fichier texte ou une chaîne de caractères, rechercher des éléments via une règle CSS et plein d'autres choses encore.
Par ailleurs, ce composant est utilisé pour générer les pages web de GambasForge. ;)

Note d'installation


Ce composant est disponible dans une version plus récente et tenue à jour sur le svn de gambasforge. Pour l'installer il vous suffit de suivre ces étapes :



Il sera peut-être nécessaire de redémarrer l'IDE de Gambas pour que les changements soient pris en compte.

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
PUBLIC SUB Main()

DIM doc AS NEW HtmlDocument 'Créons le document HTML sur lequel nous allons travailler
DIM element AS HtmlElement 'Un élément HTML sur lequel nous travaillerons plus tard

PRINT doc.Content 'On affiche le contenu du document vierge
'On remarquera que celui-ci n'est pas totalement vide.
'Les éléments essentiels (Doctype, <html>, <head>, <body> et le charset UTF-8 sont ajoutés par défaut.

PRINT "===================================="

doc.Html5 = TRUE 'Ici je modifie le doctype du document pour le rendre compatible avec la norme HTML5
'Par défaut, le document est en xHTML Strict 1.0

doc.Title = "Une belle page web !" 'Je mets un beau titre pour ma page web, qui apparaîtra dans le navigateur
doc.Favicon = "images/favicon.ico" 'Une petite icône pour faire joli
doc.StyleSheets.Add("css/main.css") 'Ici j'ajoute un fichier CSS à moi pour pas que ça soit trop moche
doc.StyleSheets.Add("css/mobile.css", "handheld") 'Je peux aussi choisir de le lier pour un média précis
doc.StyleSheets.AddIfIE("css/iecorrections.css") 'Et aussi le lier uniquement le CSS pour Internet Explorer (pratique !)

'À présent, occupons-nous un peu du contenu de notre page web (qui est pour l'instant toute blanche)

doc.Body.AppendFromText("<h1>Une page web !</h1>")
'Ici j'accède au corps de ma page (via la propriété Body) et j'y injecte directement du code HTML
'J'aurai donc un beau titre dans ma page web

doc.Body.AppendFromText("<p>Ceci est une page web <strong>extrêmement</strong> simpliste créée avec le magnifique "
"composant <em>gb.html</em>. Ça jette non ?</p>"
'De même, j'ajoute un paragraphe et un peu de blabla dedans

element = NEW HtmlElement("p") 'Je crée un nouvel élément de paragraphe
doc.Body.AppendChild(element) 'Ensuite je l'ajoute au corps du document
element.TextContent = "Hé vous avez vu ? " ''Et je définis le texte qu'il contient
element.AppendFromText("<strong>Tous</strong> les caractères UTF-8 marchent tout seuls ! « àéèêëÀÉÈÊË »"
'Je peux aussi injecter du HTML dans l'élément comme je le faisais tout à l'heure

PRINT element.TextContent 'Ici je récupère uniquement le texte contenu dans le paragraphe (sans les balises HTML)

PRINT "===================================="
PRINT doc.Content 'On affiche le document final.

File.Save(User.Home &/ "test.html", doc.Content) 'On peut également le sauvegarder sur le disque
'Essayez donc de l'ouvrir dans votre navigateur pour voir le résultat !


END

Commentaires

Commentaire de manu, Le 9/4/2012 à 19:53:02
Super Prokopy, merci pour toutes ces infos.

Juste pour savoir, si je veux diffuser une application avec un composant "non officiel" comme celui ci par exemple, comment doit je procéder ? On ne peux pas dire à un utilisateur de compiler gambas3 quand même, si ?
Commentaire de Prokopy, Le 9/4/2012 à 22:55:33
Tu peux diffuser un paquet du composant (deb, rpm ou autre). Pour cela il faudra le fabriquer comme c'est indiqué dans la doc.
Ensuite on peut trouver pas mal de tutos sur le net pour fabriquer des paquets pour toutes sortes de distributions (comme ici ou ici).