Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] constructeur XML à partir d'un fichier CSV

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Marc Chantreux <adresse@cachée>
  • To: adresse@cachée, Vu Ngoc VU <adresse@cachée>
  • Subject: Re: [sympa-fr] constructeur XML à partir d'un fichier CSV
  • Date: Thu, 4 Oct 2012 23:47:49 +0200

hello,

On Thu, Oct 04, 2012 at 03:52:28PM +0200, Vu Ngoc VU wrote:
> Bon, ok :
> - il n'y a pas de contrôle sur la validité du CSV en entrée

parcequ'il y en a plus dans les XML de sympa? il existe une DTD, un
schema?

moi j'aurais plutot tendance à dire (avec mon experience):

* ne jamais utiliser autre chose qu'une lib xml pour générer du xml
(oublie awk du coup): les erreurs sont trop vite arrivées.
* le pourrais faire la même remarque pour CSV mais les pbs sont moins
courants.
* ton script prend la source et la destination comme arguments: non
seulement ça te complique la vie mais ca rend ton script bien moins
souple. imagine par exemple que ton entrée soit la sortie d'un autre
programme. il faut donc que ton script se comporte pour bien faire
comme tous les filtres unix.

ci-après donc: une version perl de ton script (sans commentaire parceque
je ne connais pas ton niveau en perl: n'hésite pas à poser des questions).

(ARGV est un fh magique documenté dans "man perlvar" qui permet justement de
se comporter comme un filtre: stdin si fichier absent dans @ARGV)

#! /usr/bin/perl
use XML::Simple;

# premiere ligne = liste des champs
my @fields = map { chomp; split /;/ } scalar <ARGV>;
print XMLout { list =>
[ map {
chomp;
my %list;
@list{ @fields } = split /;/;
\%list;
} <ARGV> ]
}, qw( NoAttr 1 RootName familly );

cordialement,
marc




Archives gérées par MHonArc 2.6.19+.

Haut de le page