(Pro Windows XP, ActivePerl 5.10.1 et XML SAX 0,96 utilisé)XML SAX Erreur: pas un tableau de référence
MyXML.xml que cette
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<subItem>
<bib>0006</bib>
<name>Stanley Cheruiyot Teimet</name>
<team>肯尼亚</team>
<time>2:17:59</time>
<rank>1</rank>
<comment />
<gender>Male</gender>
<distance>Full</distance>
<year>2010</year>
</subItem>
</DocumentElement>
MyPerl.pl
#!/usr/bin/perl -w
use strict;
use XML::Simple;
use Data::Dumper;
use utf8;
open FILE, ">myXML.txt" or die $!;
my $tree = XMLin('./myXML.xml');
print Dumper($tree);
print FILE "\n";
for (my $i = 0; $i < 1; $i++)
{
print FILE "('$tree->{subItem}->[$i]->{distance}')";
}
close FILE;
sortie:
D:\learning\perl\im>mar.pl
$VAR1 = {
'subItem' => {
'distance' => 'Full',
'time' => '2:17:59',
'name' => 'Stanley Cheruiyot Teimet',
'bib' => '0006',
'comment' => {},
'team' => '肯尼亚',
'rank' => '1',
'year' => '2010',
'gender' => 'Male'
}
};
Not an ARRAY reference at D:\learning\perl\im\mar.pl line 41.
Je ne sais pas ce que e e moyen de référence tableau? Le Dumper()
fonctionne bien. Mais ne peut pas imprimer les données au fichier TXT.
En fait, l'exemple de code a bien fonctionné quelques jours auparavant, alors je me souviens d'avoir mis à jour mon Komodo Edit à partir de V5. au plus récent V6.
Aujourd'hui, j'essaie juste d'améliorer le script, au début, j'ai corrigé une autre erreur. "Impossible de trouver ParserDetails.ini" avec l'aide de Google. (Je n'ai pas eu l'erreur avant!)
Mais maintenant je reçois l'erreur de référence ARRAY. J'ai déjà réinstallé mon XML-SAX via PPM tout à l'heure. Ça ne marche toujours pas.
Bonjour Monsieur, votre code fonctionne très bien. Et finalement, j'ai trouvé que mon code original fonctionne bien SEULEMENT quand le sous-élément Xml est nommé avec Caps Letters. Comme * bavoir * -> * Bavoir *; * nom * -> * Nom *. Le nom et le nom du fichier proviennent de mon fichier Excel. Je ne connais pas la règle spéciale de nommage des majuscules. C'est pourquoi je rencontre ce problème. Merci quand même, tu m'as appris 'FourceArray'. –