juin 20, 2002
Comment tester la présence d'un élément vide.

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
Comments
Post a comment
Name:


Email Address:


URL:


Comments:


Remember info?