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