Bonjour,
Je souhaite convertir un fichier vcard contenant 500 contacts avec toutes sortes d'informations (nom, prénom, tel, adresse postale, mail...) vers un fichier XML ne comprenant que certaines de ces informations.
L'objectif est de lancer régulièrement (par un cron) une moulinette sur le fichier .VCF pour produire le XML en vue de l'injecter dans un téléphone VoIP GrandStream GXP2100
Voici comment se présente une fiche Vcard (sachant qu'il y en a 500 dans le même genre) :
Voici comment doit se présenter le fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 BEGIN:VCARD VERSION:3.0 N:MACHINE;Truc FN:MACHINE Truc TEL;TYPE=HOME;TYPE=VOICE:04 45 45 45 45 TEL;TYPE=CELL;TYPE=VOICE:06 12 12 12 12 EMAIL;TYPE=PREF;TYPE=INTERNET:truc.machin@yahoo.fr UID:8643592-2f18-4ab4-87ad-cbc5c5gr462e@domain.net REV:2014-08-14T15:35:04+00:00 PRODID:-//ownCloud//NONSGML Contacts 0.3.0.17//EN END:VCARD
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14<?xml version="1.0" encoding="UTF-8"?> <AddressBook> <Contact> <LastName>MACHINE</LastName> <FirstName>Truc</FirstName> <Phone> <phonenumber>04 45 45 45 45</phonenumber> <accountindex>1</accountindex> </Phone> <Groups> <groupid>0</groupid> </Groups> </Contact> </AddressBook>
Premier problème concernant comment m'y prendre : intuitivement et avec mes compétentes actuelles, j'aurai eu tendance à faire un script bash à grands coups de grep, awk et cut. Mais mon petit doigt me dit qu'il y a peut-être d'autres façons de faire plus intelligentes.
Deuxième problème : si un contact dans le VCF contient plus d'un numéro de tel (portable, tel perso et tel pro par exemple), il faudrait générer autant de contacts avec le même nom et un tel différent. Et là, je sens que c'est pas gagné du tout !
Merci pour l'aide que vous pourriez m'apporter en attendant
Partager