Boucle sur un fichier XML (SAX)
Résolu/Fermé
lefreeman63
Messages postés
136
Date d'inscription
mercredi 20 avril 2011
Statut
Membre
Dernière intervention
11 février 2016
-
Modifié par lefreeman63 le 8/01/2014 à 09:37
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 9 janv. 2014 à 11:28
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 9 janv. 2014 à 11:28
A voir également:
- Boucle sur un fichier XML (SAX)
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Xml download - Télécharger - Édition & Programmation
1 réponse
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 099
Modifié par [Dal] le 8/01/2014 à 10:42
Modifié par [Dal] le 8/01/2014 à 10:42
Salut lefreeman63,
Le
https://perldoc.perl.org/functions/ref
Si ce n'est pas une référence vers un tableau, la valeur de
Si c'est une référence vers un tableau, le tableau est parcouru dans le else, et les valeurs successives sont mises par le foreach dans
Dal
Le
ifutilise la fonction Perl
refpour tester si
$xmlfile->{LIST_BURST}->{BURST}est une référence vers un tableau.
https://perldoc.perl.org/functions/ref
Si ce n'est pas une référence vers un tableau, la valeur de
$xmlfile->{LIST_BURST}->{BURST}est rangée dans
$Addr, puis traitée par une fonction all_burst définie dans ton programme.
Si c'est une référence vers un tableau, le tableau est parcouru dans le else, et les valeurs successives sont mises par le foreach dans
$Addr, puis traitée par une fonction all_burst définie dans ton programme.
Dal
Modifié par lefreeman63 le 8/01/2014 à 11:40
Cela m'aide bien.
J'aurais une autre question du coup, et j'espère être assez clair.
Mais à quoi je vais voir que mon fichier XML va être une référence ou non à un tableau?
Merci d'avance pour ta réponse.
Modifié par [Dal] le 8/01/2014 à 12:25
Vois https://metacpan.org/pod/release/GRANTM/XML-Simple-2.20/lib/XML/Simple.pm
pour comprendre son fonctionnement.
Par définition, va retourner une référence à une structure de données dans $xmlfile.
Ton code vérifie si dans cette structure de données BURST contenue dans LIST_BURST, contient une référence vers un tableau.
Si c'est le cas, c'est probablement parce que ton fichier XML contient quelque chose comme :
Si ce n'est pas une référence à un tableau, c'est certainement parce qu'il n'y a qu'une seule entrée "BURST" sous "LIST_BURST" dans ton fichier XML.
Dal
8 janv. 2014 à 14:11
Merci beaucoup et bonne continuation à toi
8 janv. 2014 à 14:46
Effectivement dans mon fichier de test je n'ai qu'une seul balise <BURST> c'est pour cela que je passe dans la boucle IF et que mon fichier est rangée dans $Adrr.
Cependant, quand je lance la fonction $all_burst cette ligne la ne fonctionne pas :
$F->{FILE_NAME} ne me ramène aucune information.
Alors que cela fonctionne si il y a plusieur balise <BURST> et je passe dans le
Sa me dépasse un peu beaucoup :-/
Toutes mes lignes de commande $F-> ..........
Ne récupère pas les informations dont j'ai besoin.
Désolé de encore te demander de l'aide :-)
8 janv. 2014 à 15:07
Tu pourrais utiliser le module Data::Dumper pour inspecter le contenu de ce qui est passé à ta fonction dans un cas et dans l'autre et voir ce qui diffère et pourquoi.
Dal