#! /usr/bin/perl -w # La redistribution du code source, modifié ou non, est soumise aux # conditions suivantes : # Le copyright ci-dessus, la présente liste de conditions et # l'avertissement qui la suit doivent figurer dans le code source. # CE PROGRAMME EST FOURNI « TEL QUEL » ET IL N'EST DONNÉ AUCUNE # GARANTIE, IMPLICITE OU EXPLICITE, QUANT À SON UTILISATION # COMMERCIALE, PROFESSIONNELLE OU AUTRE. L'AUTEUR NE PEUT EN AUCUN CAS # ÊTRE TENU POUR RESPONSABLE DE QUELQUE DOMMAGE OU PRÉJUDICE DIRECT, # INDIRECT, SECONDAIRE OU ACCESSOIRE (Y COMPRIS LES PERTES FINANCIÈRES # DUES AU MANQUE À GAGNER, À L'INTERRUPTION D'ACTIVITÉS, OU LA PERTE # D'INFORMATIONS ET AUTRES) DÉCOULANT DE L'UTILISATION DE PROGRAMME OU # DE L'IMPOSSIBILITÉ D'UTILISER CELUI-CI, ET DONT L'UTILISATEUR # ACCEPTE L'ENTIÈRE RESPONSABILITÉ. use strict; use XML::Parser; my $p = new XML::Parser(Style=>'Subs', Pkg=>'SubHandlers', ErrorContext=>2); $p->setHandlers(Char => \&char); my $fichier = shift; $p->parsefile($fichier); exit 0; ### Handler pour tout ce qui n'est pas une balise. sub char { my ($p,$donnees) = @_; if ($donnees eq '<') { $donnees = '<'; } elsif ($donnees eq '>') { $donnees = '>'; } elsif ($donnees eq '&') { $donnees = '&'; }# else { # $donnees =~ s/(.*[\.\!\?:])$/$1

/; #} print $donnees; } ### Handlers pour les balises. package SubHandlers; my (@types_listes, $titre, $section, $ssection); sub article { my ($p, $balise, %attribs) = @_; $titre = $attribs{'titre'}; print ""; } sub article_ { print ""; } sub tete { print "\n$titre\n\n"; print "\n"; print "

$titre

\n"; print "
\n"; } sub tete_ {} sub resume { print "
"; } sub resume_ { print "
\n
"; } sub toc { my $sect = 1; print "
\n"; print "

Table des matières

\n"; print "