Avatar billede bba Nybegynder
10. december 2003 - 13:51 Der er 5 kommentarer og
1 løsning

ingen værdi i HASH

Jeg poster et XML sheet ind i mit CGI script
og benytter XML::Simple der putter alle tags i en HASH tabel.
Nu vil jeg gerne verificere de enkelte data i hver tag (values i HASH), det er ok, men hvis et tag er tomt i XML,
får jeg bare en HASH reference og ikke blank.

Hvordan kan jeg simpelt verificere om der er en værdi(value) i en given tag, specielt hvis den er blank ??

Hvis den har en værdi kan jeg simpelt benytte værdien, men hvis blank er det en 15 tegns reference. !!


[code start]
use CGI qw(:standard);

print header();

my $query = new CGI;
my $xml  = $query->param('xml');

  use XML::Simple;
  my $config = XMLin($xml);

  use Data::Dumper; # for test
  print Dumper($config);

# følgende virker ikke !!
print "Value er defineret1" if defined ($hash->{tag};
print "Value er defineret2" if exists ($hash->{tag};
print "Value er defineret3" if ($hash->{tag};

[code slut]

Mvh, Brian Birkedal
Avatar billede mfalck Praktikant
10. december 2003 - 14:02 #1
virker

$ref = $hash->{tag}
print "Value er defineret4"  if (defined($ref));
Avatar billede ranko Nybegynder
10. december 2003 - 15:14 #2
Jeg vil foreslå at du bruger SuppressEmpty i XMLin f.eks.

my $config = XMLin($xml, SuppressEmpty => 1 );

i modsat fald får du netop en hash (uden keys) når der er tomme tags
Avatar billede bba Nybegynder
10. december 2003 - 16:05 #3
svar fra mfalk gav desværre intet :-)
Svar fra ranko, virker perfekt, havd overset de mange funktionaliteter der ligger i modulet XML::Simple, tak for hurtig svar

/BBA
Avatar billede bba Nybegynder
10. december 2003 - 16:07 #4
ranko send et reply svar som jeg kan give dig point på !!
Avatar billede ranko Nybegynder
10. december 2003 - 16:21 #5
ok
Avatar billede bba Nybegynder
10. december 2003 - 16:28 #6
ranko, fik vist givet mig selv point ?? Stor fejl, jeg kan ikke se jeg kan trække dem tilbage, har du en løsning på hvordan man gør,
kan jeg skrive til en admin eller ??
Det er din point alle 200 !!

/BBA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester