Projet IPA 2001 Java : Parsing HTML

 

I. Présentation du contexte

Analyse de document HTML

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.

Intêret du modèle mémoire

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.

Contenu

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.

Modèle par tableaux

zz

Modèle du DOM

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.

 

II. Contenu du projet

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.

III. Soutenance et Compte-rendu

Vous devrez rendre un compte-rendu contenant :

La soutenance consiste en :

voir le  Projet réalisé par Hervé Marcantoni 4,6Mo   9 fichiers .java