#! /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);
$p->parsefile(shift);
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 = '>';
}
print "$donnees";
}
### Handlers pour les balises.
package SubHandlers;
my (@types_listes, $titre, $section, $ssection);
sub article {
my ($p, $balise, %attribs) = @_;
$titre = $attribs{'titre'};
print "\n";
print "\n"
}
sub article_ {
print "";
}
sub tete {
print "\n";
print "$titre";
}
sub tete_ {
print "\n";
}
sub resume {
print "";
}
sub resume_ {
print "\n";
}
sub corps {
$section = 0;
}
sub corps_ {
print "";
}
sub version {
print "";
}
sub version_ {
print "";
}
sub date {
print "";
}
sub date_ {
print "";
}
sub auteur {
print "";
}
sub auteur_ {
print "";
}
sub para {
print "";
}
sub para_ {
print "";
}
sub section {
print "". $_[3]."";
}
sub section_ {
print "";
}
sub subsection {
print "". $_[3]."\n";
}
sub subsection_ {
print "";
}
sub tt {
print "";
}
sub tt_ {
print "";
}
sub em {
print "";
}
sub em_ {
print "";
}
sub liste {
my ($p, $balise, %attribs) = @_;
my $type_liste = pop @types_listes;
$attribs{'type'} = 'simple' if (!defined($attribs{'type'}));
push(@types_listes, $attribs{'type'});
if ($attribs{'type'} eq 'simple') {
print "";
} elsif ($attribs{'type'} eq 'enum') {
print "";
}
}
sub liste_ {
my $type_liste = pop @types_listes;
print "" if ($type_liste eq 'simple');
print "" if ($type_liste eq 'enum');
}
sub item {
print "";
}
sub item_ {
print "";
}
sub verbatim {
print "";
}
sub verbatim_ {
print "";
}
sub url {
my ($p, $balise, %attribs) = @_;
print "$attribs{'nom'}";
}
sub url_ {
print "";
}