regroupement de données avec une boucle

regroupement de données avec une boucle - Shell/Batch - Programmation

Marsh Posté le 15-12-2006 à 10:40:20    

Bonjour,
 
Je demande votre aide sur une exploitation de fichier csv que je veux transformer en xml.
dans ce fichier , j'ai des données de tableur genre :
 
1    A    TOTO     200   89000
1    A    TOTO     200   89200
1    A    TATA     100    89310
1    B    TUTU     300    51000
1    B    TUTU     200    51300
 
Je voudrais créer un xml et avoir un résultat de ce type :
 
<Num1="1"   Type="A">
       - <Nom Nom="TOTO" >
                <Code CodeSite="200" />
                      - <CP = "89000"></CP>
                      - <CP = "89200"></CP>
                </ Code>
         </ Nom>
       - <Nom Nom="TATA">
                 <Code CodeSite="100" />
                       - <CP = "89310"></CP>
                 </ Code>
        </ Nom>
 
<Num1="1"   Type="B">
       - <Nom Nom="TUTU" >
                  <Code CodeSite="200" />
                         - <CP = "51000"></CP>
                   </ Code>
                   <Code CodeSite="300" />
                         - <CP = "51310"></CP>
                   </ Code>
       </ Nom>
</Num>
 
Je suis parti pour un script shell avec des boucles for, mais je voudrais savoir quel type de syntaxe je pourrais avoir.
 
Je connais le "while read line" , mais je ne sais pas si je peux l'utiliser pour ce type de problème.
 
Merci de m'éclairer pour ce problème de groupage de données !!  :hello:  
 
 
 
             

Reply

Marsh Posté le 15-12-2006 à 10:40:20   

Reply

Marsh Posté le 17-12-2006 à 20:23:06    

Un petit script AWK de qques lignes pourrait faire ça sans problème. Les lignes du fichier source sont-elles déjà indexées ?

Reply

Marsh Posté le 18-12-2006 à 15:25:35    


Oui les lignes sont indecées . Petite question : Comment vois-tu la syntaxe du 'AWK'  por ce problème ?  
Faut-il que je fasse un for avec un tableau ? Je ne connais pas trop cette commande, merci de m' éclairer :-)  

Reply

Sujets relatifs:

Leave a Replay

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