Dans les fichiers de Normandie Web qui n'ont pas encore de contenu, il existe une balise <nwContrib />. Cette balise vide joue un rôle de switch binaire. Quand cette balise est présente, il faut remplacer la sortie (output) par une invitation à contribuer de la part des visiteurs.
#!/usr/bin/perl
# chargement des modules necessaires
use strict;
use XML::Simple;
use Data::Dumper;
my $file = 'index.xml';
my $xs1 = XML::Simple->new(suppressempty => '');
my $doc = $xs1->XMLin($file);
my $nwnomville = $doc->{nwheader}->{nwnomville};
print "Nom ville : " . $nwnomville . "\n";
print "Nom Reg : " . $doc->{nwheader}->{nwregion} . "\n";
print "Nbr hab : " . $doc->{nwheader}->{nwhabnbr} . "\n";
# test de la presence des elements nwContrib et nwContribFalse
# dans le fichier. Plus tard, cela permettra de remplacer le contenu
# par un autre :)
#
print "nwContrib existe \n"
if exists $doc->{nwtexte}->{texte}->{nwContrib} ;
print "nwContribFalse ne doit pas s'afficher \n"
if exists $doc->{nwtexte}->{texte}->{nwContribFalse} ;
# Sortie brut du fichier de hash pour verifier que l'on teste
# bien ce qu'il faut tester :)
#
print Dumper $doc ;
Ce qui donne en sortie une fois le programme exécuté :
Nom ville : Aunay-sur-Odon
Nom Reg : Basse-Normandie
Nbr hab : 2889
nwContrib existe
$VAR1 = {
'nwheader' => {
'nwhabnbr' => '2889',
'nwcanton' => 'Aunay-sur-Odon',
'nwdpt' => 'Calvados',
'nwregion' => 'Basse-Normandie',
'nwvoir' => {
'content' => 'Eglise moderne',
'br' => ''
},
'nwnomville' => 'Aunay-sur-Odon'
},
'nwtexte' => {
'nwemail' => 'webmaster@normandieweb.org',
'nwurl' => 'http://www.normandieweb.org/14/aunaysurodon/aunaysurodon/index.xml',
'nwcreadate' => '1997-03-23',
'nwTitle' => 'Aunay-sur-Odon',
'nwlogo' => 'icotit',
'nwauteur' => 'Karl Dubost',
'nwmetaDesc' => 'Cette commune est à compléter, aidez-nous',
'nwKeywords' => 'Normandie, Tourisme, Normandie Web',
'nwmoddate' => '2001-08-13',
'texte' => {
'nwContrib' => ''
}
}
};
Posted by karl at juin 20, 2002 03:03 AM