J'ai fait un exercice comme celui-ci, comment puis-je calculer le nombre d'éléments XML réduits dans un tableau par XML :: Simple, donc je n'ai pas besoin de coder en dur le # d'éléments? Je prévois d'utiliser le code pour analyser un plus grand fichier xml. Je ne veux pas couturer les éléments manuellement. Puis-je utiliser un certain nombre pour remplacer les nombres magiques, un peu comme person.count
ou hobbie.length
etc. Comme je sais, je peux utiliser ce type de déclaration en C# commodément.Comment puis-je supprimer Magic Number lors de l'utilisation de XML :: Simple?
#!/usr/bin/perl -w
use strict;
use XML::Simple;
use Data::Dumper;
my $tree = XMLin('./t1.xml');
print Dumper($tree);
print "\n";
for (my $i = 0; $i < 2; $i++) # magic number '2'
{
print "$tree->{person}->[$i]->{first_name} $tree->{person}->[$i]->{last_name}\n";
print "\n";
for (my $j = 0; $j < 3; $j++) # magic number '3'
{
print $tree->{person}->[$i]->{hobbie}->[$j], "\n";
}
print "\n";
}
eteint:
could not find ParserDetails.ini in C:/Perl/site/lib/XML/SAX
$VAR1 = {
'person' => [
{
'hobbie' => [
'bungy jumping',
'sky diving',
'knitting'
],
'last_name' => 'Bloggs',
'first_name' => 'Joe'
},
{
'hobbie' => [
'Swim',
'bike',
'run'
],
'last_name' => 'LIU',
'first_name' => 'Jack'
}
]
};
Joe Bloggs
bungy jumping
sky diving
knitting
Jack LIU
Swim
bike
run
Mon fichier source Xml comme ci-dessous
<Document>
<person>
<first_name>Joe</first_name>
<last_name>Bloggs</last_name>
<hobbie>bungy jumping</hobbie>
<hobbie>sky diving</hobbie>
<hobbie>knitting</hobbie>
</person>
<person>
<first_name>Jack</first_name>
<last_name>LIU</last_name>
<hobbie>Swim</hobbie>
<hobbie>bike</hobbie>
<hobbie>run</hobbie>
</person>
</Document>
Si je vous, je reformuler votre question de « magie #s » à « comment puis-je calculer le # d'éléments XML effondrés dans un tableau par XML :: simple, donc je n'ont pas coder en dur le # d'éléments " – DVK