Amélie Cadeau
Anne-Laure Guénet
Maîtrise de TAL 2001-2002
ILPGA




PERL ET XML

Une introduction à la manipulation des documents XML avec PERL





SOMMAIRE DU TP



1. Programmation objet
Création d'un Package définissant les objets


2.XML::Parser

2.1 Exemple 1

 Vérification de la bonne formation d'un document XML avec constitution ou non d'un message d'erreur

 Parser invoquant les fonctions start_handler, end_handler et char_handler respectivement à chaque fois qu'une balise ouvrante est rencontrée, le contenu textuel d'un élément est traité

2.2 Exemple 3

2.3 Exemple 4

 Ce programme effectue une conversion au format HTML d'un document original au format XML.

2.4 Exemple 5

 Ce programme utilise l'interface graphique de Perl (Perl/Tk)


3.XML::Parser avec style

3.1 Exemple 1

 XML::Parser fournit une méthode pour invoquer des actions pour chaque élément rencontré. Pour chacun et le parseur appelle une fonction qui porte le nom de l'élément rencontré. on peut ainsi définir autant d'action qu'il y a d'élément dans le document XML à traiter. Pour utiliser cette méthode de XML::Parser, il faut invoquer le parser avec le style "Subs" de la manière suivante
my $parser = new XML::Parser (Style=>'Subs', ErrorContext => 2);
$parser->setHandlers (Char => \&char_handler);
Cette méthode permet l'appel de différentes fonctions dont le nom dépend du nom des éléments du document XML traité. Une balise ouvrante d'un élément donné va déclencher une fonction du même nom que l'élément en question. Le contenu textuel doit être traité séparément comme précédemment via la fonction char_handler. Une balise fermante d'un élément donné va déclencher une fonction du même nom que l'élément, ce nom étant suivi d'un underscore.

3.2 Exemple 2

 Le style "Tree" permet de construire une structure d'arbre simple dont les noeuds correspondant à des références à des tableaux. On distingue deux types de noeud :
1. les noeuds associés au contenu textuel : le premier élément 0, le suivant est le contenu textuel proprement dit.
2. les noeuds associés aux éléments : le premier élément est le nom de l'élément en question, le second est une référence à un tableau contenant le contenu de l'élément en question. Le premier élément du dernier tableau contient une référence sur un hashage contenant les attributs des éléments.

3.3 Exemple 3

 Il existe un autre style de XML::Parser qui manipule une structure d'arbre : le style "Objects". Via ce style, le parseur crée un arbre d'objets dans un package dont le nom est à paramétrer.

4.XML::XPath

 XML::XPath est basé sur XML::Parser et offre une interface SAX.

5.XML::DOM

 Ce module permet la manipulation de documents XML sous forme d'arbre, offrant l'accès aux éléments, attributs, à la DTD etc.

 XML::DOM est une implémentation du standard DOM niveau 1, plus quelques extensions. C'est un des modules XML les plus populaires. XML::DOM est basé sur XML::Parser et offre une interface SAX. Il est distribué dans le bundle libxml-enno.

6.Projet

 Programme réalisé en perl/tk permettant de travailler sur un document XML (création d'arbre, parser, balisage, Xpath), d'effectuer des recherches d'expressions régulières, et de modifier un document pour qu'il soit exploitable par Lexico3.

7.Analyse de Corpus

 Utilisation de Lexico3 sur le corpus de la campagne présidentielle 2002