Problème avec XML::Simple

Problème avec XML::Simple - XML/XSL - Programmation

Marsh Posté le 25-06-2008 à 10:00:37    

Bonjour,
 
J'ai un souci lors du parcours de mon fichier XML avec XML::Simple.
En effet, certaines balises semblent ignorées.
Voivi un cas :
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<LISTFILES SUBJECT="MACHINES">
        <MACHINE SUBJECT="eul0800232">
                <REP SUBJECT="/LOG/eul0800232/home/sisteer/PROVISIONING/OUT">
                        <FICHIER SUBJECT="EXPORT_0631819146.LOG.1">
                                <ARCHIVE></ARCHIVE>
                                <DATEFILE>2005-12-28</DATEFILE>
                        </FICHIER>
                        <FICHIER SUBJECT="EXPORT_0671070531.LOG.1">
                                <ARCHIVE></ARCHIVE>
                                <DATEFILE>2005-12-23</DATEFILE>
                        </FICHIER>
                        <FICHIER SUBJECT="EXPORT_0631818726.LOG.1">
                                <ARCHIVE></ARCHIVE>
                                <DATEFILE>2005-12-22</DATEFILE>
                        </FICHIER>
                </REP>
 </MACHINE>
        <MACHINE SUBJECT="eul0800226">
                <REP SUBJECT="/LOG/eul0800232/home/sisteer/PROVISIONING/OUT">
                        <FICHIER SUBJECT="EXPORT_0631819146.LOG.2">
                                <ARCHIVE></ARCHIVE>
                                <DATEFILE>2005-12-28</DATEFILE>
                        </FICHIER>
                        <FICHIER SUBJECT="EXPORT_0671070531.LOG.2">
                                <ARCHIVE></ARCHIVE>
                                <DATEFILE>2005-12-23</DATEFILE>
                        </FICHIER>
                        <FICHIER SUBJECT="EXPORT_0631818726.LOG.2">
                                <ARCHIVE></ARCHIVE>
                                <DATEFILE>2005-12-22</DATEFILE>
                        </FICHIER>
         </REP>
          </MACHINE>
</LISTFILES>
 
Dans cet arbre, la balise <REP> est unique à l'intérieur de la balise <MACHINE>; du coup le parseur me dit lorsqu'il rencontre cette balise: "Not an ARRAY reference at ./xml2php.pl line 32"
 
Voici mon script :
 
#!/usr/bin/perl
use XML::Simple;
use Data::Dumper;
$xml = new XML::Simple;
 
my $machine;
foreach $machine (@{$data->{MACHINE}})
        {
        my $repertoire;
        print "MACHINE = ".$machine->{SUBJECT}."\n";
        foreach $repertoire (@{$machine->{REP}})
                {
                my $fichier;
                print "REPERTOIRE = ".$repertoire->{SUBJECT}."\n";
                foreach $fichier (@{$repertoire->{FICHIER}})
                        {
                                print "FICHIER = ".$fichier->{SUBJECT}."\n";
                        }
                }
 
        }

Reply

Marsh Posté le 25-06-2008 à 10:00:37   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed