Tout navigateur web doit être capable d'afficher un document HTML. Pour cela, il doit
commencer par analyser le contenu du document pour distinguer les différents éléments
constituant le document. Chaque élément est représenté par 2 balises : la balise
ouvrante et la balise fermante ; le contenu de l'élément est situé entre ces deux
balises.Voici un exemple de fragment de document HTML contenant l'élément ul
contenant lui-même des éléments li
qui contiennent, eux, du texte :
<ul>
<li>1er item de la liste</li>
<li>2nd item de la liste</li>
</ul>
On réalise sur cet exemple que tous les éléments HTML sont contenus dans un autre
élément, jusqu'à l'élément racine HTML
. Pour obtenir des informations
sur le langage HTML, le web s'offre à vous. Les navigateurs construisent une image en
mémoire du document chargé. Parmi tous les modèles représentant un document HTML, deux
sont largement répandus : le modèle par tableaux et le DOM (Document Object Model). Le
modèle par tableaux consiste à ranger dans un même tableau les occurrences d'un même
élément. DOM construit un arbre n-aire dont la relation de filiation représenté la
relation d'inclusion d'un élément dans un autre dans le document. Dans l'exemple
précédent, li
est un fils de ul
et le fils d'un noeud de type li
est un noeud contenant du texte.
Le modèle mémoire permet au navigateur d'avoir à tout moment une vue structurée du document Cette vue facilite alors la modification dynamique du document par le navigateur. Cela permet de modifier dynamiquement le contenu d'une page HTML sans effectuer la demande d'une nouvelle page au serveur web. Ces techniques reposent sur des langages comme Javascript ou plus rarement Java. DHTML (dynamic HTML) est une de ces techniques.
Le projet consiste à lire un document HTML quelconque, à extraire les différentes balises et leur contenu pour construire une image en mémoire de chacun des 2 modèles présentés précédemment.
zz
Le document est vu comme un arbre. Chaque noeud de l'arbre représente un élément HTML. Un noeud possède un type, un nom, et la liste des noeuds fils. Chaque noeuds fils correspond à un élément contenu dans lélélement représenté par le noeud courant.
Vous commencerez par lire la documentation Java sur les classes String
, StringBuffer
et les classes Collection
. Le succès du projet repose sur la bonne
compréhension de la documentation Java.
Vous devrez rendre un compte-rendu contenant :
La soutenance consiste en :
voir le Projet réalisé par Hervé Marcantoni 4,6Mo
9 fichiers .java