Bonjour à tous,
Je rencontre des difficultés pour extraire des données d'un fichier *.xml et les reformatter dans un nouveau fichier *.txt. Après quelques tentatives avec sed je n'ai pas réussi. Je viens donc solliciter votre aide.
Un exemple visuel vaut mieux qu'un grand discours...
Mon fichier *.xml contient plusieurs balises pour chaque élément :
Citation :
<attribute name="ELEMENT-00" description="desc">
<field name="section" value="1. The first section"/>
<field name="title" value="First Element"/>
<field name="help" value="<p>Set Element String ($Element00String)"/>
<attribute name="ELEMENT-01" description="desc">
<field name="section" value="1. The first section"/>
<field name="title" value="Second Element"/>
<field name="help" value="<p>Set Element String ($Element01String)"/>
<attribute name="OPTION-00" description="desc">
<field name="section" value="2. The second section"/>
<field name="title" value="First Option"/>
<field name="help" value="<p>Set Option String ($Option00String)"/>
|
Chaque élément est formatté de la même façon, mais certains peuvent avoir des balises "field name" supplémentaires.
Mon but est de constituer un fichier de paramètres à partir des données présentes dans le fichier *.xml, tel que :
Citation :
##1. The first section
#First Element - Set Element String ($Element00String)
ELEMENT-00=""
#Second Element - Set Element String ($Element01String)
ELEMENT-01=""
##2. The second section
#First Option - Set Option String ($Option00String)
OPTION-00=""
|
Chaque élément contient une balise "section" qu'il me faudra limiter à une unique extraction. Dans le pire des cas, je pourrai toujours supprimer les doublons dans le fichier de sortie. Mon problème concerne essentiellement le "réordonancement" des données : remonter, descendre ou inverser des lignes.
J'ai essayé plusieurs choses avec sed sans résultat. Etant débutant en scripts, je ne sais pas quel langage est le mieux adapté. D'après ce que j'ai trouvé sur la toile, il semble que perl soit bien adapté à ce type de travail. Je n'ai pas de préférence entre sed, awk ou perl car je n'ai pas de contraintes particulières sur le système.
Je vous remercie par avance pour l'aide que vous allez m'apporter.
Cordialement,
algp
Message édité par algp le 09-06-2010 à 17:29:26